nginx 反向代理 openai

2023-05-19 09:56:20   工作备份

 

搭建一个nginx反向代理,并且使用basic auth 保证代理安全

假设站点为

  1. gpt.a.b.c
  1. 命令行执行

    1. 自己定一个用户名
    2. sh -c "echo -n '用户名:' >> /home/nginx/.htpasswd"
    3. sh -c "openssl passwd -apr1 >> /home/nginx/.htpasswd"
    4. 按照要求输入密码
  2. 修改nginx站点配置

    1. location /api/ {
    2. proxy_pass https://api.openai.com/;
    3. proxy_set_header Host api.openai.com;
    4. proxy_ssl_server_name on;
    5. proxy_set_header X-Real-IP $remote_addr;
    6. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    7. proxy_set_header X-Forwarded-Proto $scheme;
    8. proxy_set_header X-Original-URI $request_uri;
    9. proxy_set_header Authorization $http_token;
    10. auth_basic "Restricted Content";
    11. auth_basic_user_file /home/nginx/.htpasswd;
    12. }

由于basic auth 会占用openai接口要用的header 中的Authorization,所以我采用 header中新增token字段 再在nginx中复写Authorization

使用时 访问 /api/接口地址,再携带basic Auth用户名密码即可

  1. 如:
  2. gpt.a.b.c/api/v1/chat/completions
  3. gpt.a.b.c/api/v1/audio/transcriptions
  4. header头中新增:
  5. token: Bearer 自己的token即可