简介: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的路径的开头
有什么不对的可以在我的公众号留言