开发喵星球

使用Nginx反向代理OpenAI API

使用Nginx反向代理OpenAI API

由于OpenAI的API在国内无法访问,所以可以通过海外服务器利用Nginx实现反向代理。

安装Nginx

这个就不过多赘述,大家自行百度解决

OpenSSL创建证书

OpenAI的接口是https协议的,所以需要提供SSL证书,可以使用OpenSSL来创建免费的SSL证书。

我使用的是服务器来做的反向代理,服务器上OpenSSL一般默认都有安装,所以直接使用即可,如果服务器没有该命令同样自行百度安装。

第一步:创建私钥

openssl genrsa -out private.key 2048

你在想要保存私钥的文件夹下运行该命令,会生成一个private.key的RSA密钥文件

第二步:创建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
   
分类:玩技术 作者:荡荡, 浩浩 发表于:2024-03-27 12:43:06 阅读量:289
<<   >>


powered by kaifamiao