我当前的应用程序部署正在 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;
}