搭建一个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/completions
gpt.a.b.c/api/v1/audio/transcriptions
header头中新增:
token: Bearer 自己的token即可