Nginx 反向代理到上游获取 502 Bad Gateway?

Nginx 反向代理到上游获取 502 Bad Gateway?

我当前的应用程序部署正在 HTTP 端口上接收流量,并且 Nginx 将其重定向到 HTTPS。这工作正常。

现在我们计划让另一台 Nginx 服务器充当这些现有 Nginx 服务器(又称上游)的负载均衡器。

以下是我尝试的配置

upstream web_rack {
    server x.x.x.x;
}
server {

    location / {
        proxy_pass https://web_rack;
    }
}

但出现502 Bad Gateway以下日志错误:

2017/03/14 06:23:49 [错误] 2402#2402:5 SSL_do_handshake() 失败(SSL:错误:140770FC:SSL 例程:SSL23_GET_SERVER_HELLO:未知协议)SSL 握手时,客户端:189.166.35.243,服务器:,请求:“GET / HTTP/1.0”,上游:“https://xxxx:80/

提前致谢。

答案1

看起来好像是你的上游或服务器设置有问题。

您的错误消息表明您正在尝试通过端口 80 与上游进行 https 通信:upstream: "https://x.x.x.x:80/"

以下问题与您的问题相关,并提供了一个(几乎)有效的配置来实现与您想要执行的操作相同的操作:使用上游 SSL 将 Nginx 配置为反向代理

至少,你可能需要修改你的上游代码如下:

upstream web_rack {
    server x.x.x.x:443;
}

相关内容