Nginx反向代理实现国内任意网络直接请求OpenAI API

简介:nginx反向代理实现OpenAI API请求,nginx反向代理ChatGPT,nginx反向代理OpenAI

在之前的文章中我们分享了几个免费使用的ChatGPT站点,但是很多公司需要我们开发人员对接OpenAI的API接口实现更多需求。可惜OpenAI已被中国给墙了,无法直接访问,但是我们可以通过nginx的反向代理功能实现国内网络直接访问。

OpenAI官网提供对接的接口,接口对接需要一个key。我们需要注册OpenAI的官网,进入官网创建一个key,接下来就可以对接了。

注册官网需要国外的手机号,没有的可以上某宝购买

反向代理是什么?

其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP地址。我在网上找了一张反向代理图解,大家可以看看

反向代理实现的具体步骤如下:

1. 准备服务器

首先我们需要准备一台非大陆内的服务器,例如香港的服务器。

2. 搭建nginx服务器

这一步大家可以参考我之前的文章 nginx使用yum安装及源码安装全过程

3. 配置nginx反向代理

假设我们想要将open-ai.motui8.cn这个域名代理到OpenAI的官网接口,那我们就需要进入open-ai.motui8.cn相关的配置文件中。我的配置文件是/etc/nginx/conf/vhost/open-ai.motui8.cn.conf

编辑文件【vim /etc/nginx/conf/vhost/open-ai.motui8.cn.conf】信息如下:

server {
    listen       443 ssl;
    server_name  open-ai.motui8.cn;
    # 配置自己域名的ssl证书
    ssl_certificate /data/ssl/open-ai.motui8.cn/open-ai.motui8.cn_bundle.crt;
    ssl_certificate_key /data/ssl/open-ai.motui8.cn/open-ai.motui8.cn.key;
    location / {
        proxy_pass https://api.openai.com/; #反向代理到OpenAI的官网域名
        proxy_ssl_server_name on; #开启代理服务器名称验证,确保ssl连接的安全性
        proxy_set_header Host api.openai.com; #设置代理请求头中的Host字段为OpenAI官网的域名
    }
}

如果你不想新增域名,只想在已有的域名之上反向代理OpenAI,可以在已有的域名的nginx配置文件中添加一个location进行匹配并设置反向代理。具体配置如下:

location /v1/ {
        proxy_pass https://api.openai.com/; #反向代理到OpenAI的官网域名
        proxy_ssl_server_name on; #开启代理服务器名称验证,确保ssl连接的安全性
        proxy_set_header Host api.openai.com; #设置代理请求头中的Host字段为OpenAI官网的域名
}

注意,这个location匹配的是ChatGPT的路径的开头

有什么不对的可以在我的公众号留言

编程经验共享公众号二维码

编程经验共享公众号二维码
更多内容关注公众号
Copyright © 2021 编程经验共享 赣ICP备2021010401号-1