利用nginx反向代理openai api

前一篇文章介绍如何搭建属于自己的chatgpt,文中提到需要反向代理openai的api,本文就以nginx为例从0开始反代openai api,当然,使用caddy一样可以,本文只以nginx(宝塔面板)为例。

前提条件

  • 需要一台海外服务器,最好是在新加坡这些地区

如果没有海外服务器,利用cf(cloudflare)和腾讯云/阿里云函数一样可以代理api,但是不太稳定,有机会也出一期教程

  • 一个域名以及对应的ssl证书

一、安装nginx

以Ubuntu为例

su root                            #切换root用户
sudo apt update -y       #更新软件源
sudo apt install nginx -y      #安装nginx
nginxsystemctl status nginx   #检查nginx是否安装成功

二、编辑nginx配置文件

nano /etc/nginx/nginx.conf        #编辑默认的nginx配置文件

复制粘贴以下内容到最后一行,请根据自己情况自行修改

server {
  listen 443 ssl http2;
  #仅监听443端口,可以自己替换想要的端口,记得最后放行防火墙
  server_name example.com;
  #example.com自行换成自己的域名

        ssl_certificate "/home/*.crt";
        #配置ssl证书文件路径,请自行更改
        ssl_certificate_key "/home/*.key";
        #配置ssl私钥文件路径,请自行更改
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

    location ~* /(v1|dashboard) {
      proxy_pass https://api.openai.com;      
      #配置反向代理api,无需改动
    }
}

然后同时按住ctrl+o键后按回车保存配置文件,之后按住ctrl+x退出,最后放行防火墙并重启nginx

sudo ufw allow 443           #放行443端
sudo systemctl restart nginx       #重启nginx服务

如果重启失败请检查配置是否有误

注意:如果还是不能访问请检查服务器控制台是否放行了对应端口

如果是使用宝塔用户,则需要修改部分nginx ssl配置部分才能启动nginx

ssl_session_cache shared:SSL:10m;       #修改此行
proxy_ssl_server_name on;           #添加此行
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;      #添加此行

三、验证是否反代成功

浏览器打开https://example.com/v1,出现以下内容则说明成功,之后自行配置chatgpt-web中反代(API_REVERSE_PROXY)即可。

THE END