海外主机使用 1panel 反代理 openai 失效的解决办法。

1panel 使用海外主机,反代api.openai.com不生效,打开反代理源文进行修改可以解决。


这是创建反代后的源文

location ^~ / {
    proxy_pass https://api.openai.com; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header REMOTE-HOST $remote_addr; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_http_version 1.1; 
    add_header X-Cache $upstream_cache_status; 
    add_header Strict-Transport-Security "max-age=31536000"; 
}

修改为以下源文保存即可生效。

location ^~ / {
    proxy_buffer_size 64k;
    proxy_buffers 32 32k;
    proxy_busy_buffers_size 128k;
    proxy_pass https://api.openai.com; 
    proxy_set_header Host api.openai.com; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header REMOTE-HOST $remote_addr; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_http_version 1.1; 
    proxy_set_header X-Error-Message $upstream_http_x_error_message;
    proxy_buffering off; 
    proxy_ssl_server_name on; 
    proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    add_header X-Cache $upstream_cache_status; 
    add_header Strict-Transport-Security "max-age=31536000"; 
}

修改部分

  1. proxy_set_header Host $host;

    • 修改为: proxy_set_header Host api.openai.com;
    • 原因: 明确设置目标主机为 api.openai.com,避免使用动态变量 $host
  2. proxy_set_header Connection $connection_upgrade;

    • 修改为: proxy_set_header Connection "upgrade";
    • 原因: 之前的配置中使用了未定义的变量 $connection_upgrade,将其替换为静态值 "upgrade" 以确保兼容性。

增加部分

  1. proxy_buffer_size 64k;

    • 解释: 设置单个代理缓冲区的大小。适当增加缓冲区大小可以提升代理性能。
  2. proxy_buffers 32 32k;

    • 解释: 设置代理缓冲区的数量和大小。这里配置为 32 个 32KB 的缓冲区。
  3. proxy_busy_buffers_size 128k;

    • 解释: 设置繁忙时可以用来存储响应头的缓冲区大小。增加这个参数有助于处理大流量的情况。
  4. proxy_set_header X-Error-Message $upstream_http_x_error_message;

    • 解释: 设置自定义的错误消息头。这有助于在出现错误时传递更多的调试信息。
  5. proxy_buffering off;

    • 解释: 关闭代理缓冲功能。对于需要实时性较高的应用,关闭缓冲可以减少延迟。
  6. proxy_ssl_server_name on;

    • 解释: 启用 SSL 服务器名称指示(SNI)。这在与支持多个 SSL 证书的服务器通信时非常重要。
  7. proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    • 解释: 指定允许使用的 SSL/TLS 协议版本。确保与目标服务器的兼容性,并提高安全性。
1 个赞

手动点赞 :+1: :+1: :+1:

2 个赞