↓ 跳过正文

解决Nginx反向代理https502错误的问题

正能量 1 分钟阅读 更新于 2026-10-18

说明 Nginx 反向代理 HTTPS 时,SNI 与 HTTP Host 头为何需要分别检查。

解决Nginx反向代理https502错误的问题:原站配图。
location ^~ /
{
    proxy_pass https://www.binance.com/bapi/asset/v1/public/asset-service/product/currency;
    proxy_set_header Host www.binance.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;
    add_header X-Cache $upstream_cache_status;
    proxy_ssl_server_name on;
}

关键的一行代码:

 proxy_ssl_server_name on;

补充阅读
#

说明 Nginx 反向代理 HTTPS 时,SNI 与 HTTP Host 头为何需要分别检查。

如何理解与使用
#

原示例通过 proxy_ssl_server_name 让上游 TLS 握手携带服务器名称;proxy_set_header Host 则作用于之后的 HTTP 请求。

验证与边界
#

遇到 502 时结合错误日志检查域名解析、连接和 TLS 阶段。SNI 能解决名称选择问题,但不能替代上游证书校验或修复所有 502。

参考:Nginx HTTPS 上游配置(本次补充核对)。