nginx 负载均衡proxy ssl 502 bad

14 4月

nginx 负载均衡proxy ssl 502 bad

出现了这个情况 排查了一段时间

首先打开错误日志

error_log  /usr/local/nginx/conf/vhost/error.log  info;
access_log /usr/local/nginx/conf/vhost/access.log  ;

错误日志级别info颗粒细度就差不多了 最低还有debug

然后开始调试 跳IPV6验证失败

我发现宿主机没有IPV6

首先设定dns解析 nginx 1.5版本后支持

 resolver 8.8.8.8 ipv6=off;

指定google dns 关闭ipv6解析

接下来报错

2021/04/14 18:54:13 [error] 2592#0: *1 SSL_do_handshake() failed (SSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:SSL alert number 40) while SSL handshaking to upstream, client: 1, server: , request: “GET /zB8KjtjUt1Cs6kriXV9q9HuzWjkevb8JmjGKbkxpA0k/fit/800/800/ce/0/aHR0cHM6Ly9zdG9yYWdlMS5waWNhY29taWMuY29tL3N0YXRpYy84Y2ZmODMzMi1jNDYyLTQ1NDEtYmZjYS0yNTJmOWJlMWZiZTUucG5n.png?sq=qw1 HTTP/1.1”, upstream: “https://:443/zB8KjtjUt1Cs6kriXV9q9HuzWjkevb8JmjGKbkxpA0k/fit/800/800/ce/0/aHR0cHM6Ly9zdG9yYWdlMS5waWNhY29taWMuY29tL3N0YXRpYy84Y2ZmODMzMi1jNDYyLTQ1NDEtYmZjYS0yNTJmOWJlMWZiZTUucG5n.png?sq=qw1”, host: “mytest”
2021/04/14 18:54:13 [warn] 2592#0: *1 upstream server temporarily disabled while SSL handshaking to upstream, client: , server: img.bbwo.tk, request: “GET /zB8KjtjUt1Cs6kriXV9q9HuzWjkevb8JmjGKbkxpA0k/fit/800/800/ce/0/aHR0cHM6Ly9zdG9yYWdlMS5waWNhY29taWMuY29tL3N0YXRpYy84Y2ZmODMzMi1jNDYyLTQ1NDEtYmZjYS0yNTJmOWJlMWZiZTUucG5n.png?sq=qw1 HTTP/1.1”, upstream: “https://:443/zB8KjtjUt1Cs6kriXV9q9HuzWjkevb8JmjGKbkxpA0k/fit/800/800/ce/0/aHR0cHM6Ly9zdG9yYWdlMS5waWNhY29taWMuY29tL3N0YXRpYy84Y2ZmODMzMi1jNDYyLTQ1NDEtYmZjYS0yNTJmOWJlMWZiZTUucG5n.png?sq=qw1”, host: “”

SSL握手失败

这就很迷了,因为其他的均衡负载服务器都没问题 这台就有

经确认是域名启用了hsts

参考了这个文章:https://stackoverflow.com/questions/38375588/nginx-reverse-proxy-to-heroku-fails-ssl-handshake

我今天能够解决此问题,并希望发布解决方案,以防其他人遇到同一问题。

事实证明,问题毕竟与SNI有关。我在nginx.org上找到了这张票:

https://trac.nginx.org/nginx/ticket/229

这使我想到了proxy_ssl_server_name指令:

http://nginx.org/r/proxy_ssl_server_name

通过在配置中将其设置为“ on”,您将能够使用SNI代理上游主机。

感谢所有提出建议的人!

proxy_ssl_server_name on;

至此 修复均衡负载无法连接源服务器BUG

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注