利用宝塔面板创建一个OpenAI API转发的网站

    众所周知, OpenAI API 有 IP 限制,想要打破这个限制,可以在服务器上部署配置Nginx转发OpenAI API,具体如下:

    1、创建一个转发的网站(建议使用美国云服务器)

    点击添加站点,选择纯静态即可!

    2、添加反向代理

    3、更改网站配置

    将以下站点配置信息直接替换原来的即可!(api.*.ltd替换为自己的域名)

    server
    {
        listen 80;
        listen 443 ssl http2;
        server_name api.*.ltd;
        index index.php index.html index.htm default.php default.htm default.html;
        root /www/wwwroot/api.*.ltd;    
            proxy_ssl_server_name on;  # 开启代理SSL服务器名称验证,确保SSL连接的安全性
            proxy_set_header Host api.openai.com;  # 设置代理请求头中的Host字段为api.openai.com
            chunked_transfer_encoding off;  # 禁用分块编码传输,避免可能的代理问题
            proxy_buffering off;  # 禁用代理缓存,避免数据传输延迟
            proxy_cache off;  # 禁用代理缓存,确保实时获取最新的数据
            #proxy_set_header X-Forwarded-For $remote_addr;  # 将客户端真实IP添加到代理请求头中的X-Forwarded-For字段中,用于记录客户端真实IP
    
            
            client_max_body_size 30m;
            client_body_buffer_size 128k;
            
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
            proxy_send_timeout 600;
            proxy_buffer_size 64k;
            proxy_buffers   4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;
    
        #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
        #error_page 404/404.html;
        ssl_certificate    /www/server/panel/vhost/cert/api.*.ltd/fullchain.pem;
        ssl_certificate_key    /www/server/panel/vhost/cert/api.*.ltd/privkey.pem;
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        add_header Strict-Transport-Security "max-age=31536000";
        error_page 497  https://$host$request_uri;
    		#SSL-END
    
        #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
        #error_page 404 /404.html;
        #error_page 502 /502.html;
        #ERROR-PAGE-END
    
        #PHP-INFO-START  PHP引用配置,可以注释或修改
        #清理缓存规则
    
        location ~ /purge(/.*) {
            proxy_cache_purge cache_one $host$1$is_args$args;
            #access_log  /www/wwwlogs/api.*.ltd_purge_cache.log;
        }
    	#引用反向代理规则,注释后配置的反向代理将无效
    	include /www/server/panel/vhost/nginx/proxy/api.*.ltd/*.conf;
    
    	include enable-php-00.conf;
        #PHP-INFO-END
    
        #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
        include /www/server/panel/vhost/rewrite/api.*.ltd.conf;
        #REWRITE-END
    
        #禁止访问的文件或目录
        location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
        {
            return 404;
        }
    
        #一键申请SSL证书验证目录相关设置
        location ~ \.well-known{
            allow all;
        }
    
        #禁止在证书验证目录放入敏感文件
        if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
            return 403;
        }
    
        access_log  /www/wwwlogs/api.*.ltd.log;
        error_log  /www/wwwlogs/api.*.ltd.error.log;
    }
    }

    4、替换api地址

    在代码中将官方的api地址https://api.openai.com换成自己的 http://api.*.ltd