搭建一个nginx反向代理,并且使用basic auth 保证代理安全
假设站点为
gpt.a.b.c
命令行执行
自己定一个用户名sh -c "echo -n '用户名:' >> /home/nginx/.htpasswd"sh -c "openssl passwd -apr1 >> /home/nginx/.htpasswd"按照要求输入密码
修改nginx站点配置
location /api/ {proxy_pass https://api.openai.com/;proxy_set_header Host api.openai.com;proxy_ssl_server_name on;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Original-URI $request_uri;proxy_set_header Authorization $http_token;auth_basic "Restricted Content";auth_basic_user_file /home/nginx/.htpasswd;}
由于basic auth 会占用openai接口要用的header 中的Authorization,所以我采用 header中新增token字段 再在nginx中复写Authorization
使用时 访问 /api/接口地址,再携带basic Auth用户名密码即可
如:gpt.a.b.c/api/v1/chat/completionsgpt.a.b.c/api/v1/audio/transcriptionsheader头中新增:token: Bearer 自己的token即可