使用Nginx反向代理OpenAI API
由于OpenAI的API在国内无法访问,所以可以通过海外服务器利用Nginx实现反向代理。
安装Nginx
这一步就不赘述了,不同的Linux系统安装方式略有不同,根据自己的服务器的系统自行百度即可。
OpenSSL创建证书
因为OpenAI的接口是https协议的,所以在这之前需要提供SSL证书,这里使用OpenSSL来创建免费的SSL证书。
OpenSSL一般默认都有安装,所以直接使用即可,如果服务器没有该命令同样自行百度安装。
第一步:创建私钥
openssl genrsa -out private.key 2048
在合适的文件夹处输入该命令,它将生成名为private.key的RSA密钥文件,至少使用2048位的密钥长度。
第二步:创建CSR文件
openssl req -new -key private.key -out server.csr
这里会询问详细信息,如国家代码、州和地区名称、组织名称、您的姓名、电子邮件地址等,可以参考下面的输入:
CountryName: CN
ProvinceName: Guangdong
Locality Name: Guangzhou
Organization Name: ABC
Organizational Unti Name: ABC
Common Name:填自己的域名或者服务器ip地址
Email Adress: 123@163.com
A Challenge password: 因为是可选的所以直接回车即可
An optional company name: 同样是可选的所以直接回车即可
第三步:创建自签名证书
openssl x509 -req -days 3650 -in server.csr -signkey private.key -out server.crt
使用private.key和server.csr生成新证书server.crt,这里我指定有效时间为3650天,也就是10年。
配置Nginx
sudo vim /etc/nginx/nginx.conf
在http节点下添加server节点,配置如下:
http {
#此处省略其他配置
server {
listen 443 ssl http2;
server_name 域名或者服务器ip;
ssl_certificate /root/cert/server.crt;
ssl_certificate_key /root/cert/private.key;
location /v1/ {
proxy_pass https://api.openai.com;
proxy_set_header Host api.openai.com;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
ssl_certificate和ssl_certificate_key分别是上面生成的两个文件。
重启Nginx
停止Nginx
sudo nginx -s stop
启动Nginx
sudo nginx
大功告成!
自此便可以通过自己的域名或者服务器ip实现OpenAI API的访问了。
https://服务器域名或者ip/v1/chat/completions