nginx 错误消息 - "peer" 指的是什么?
nginx error message - what does "peer" refer to?
为了调试nginx错误案例,我需要先完全理解错误日志信息。我们的 nginx 会不时写入特定的错误日志消息。
日志消息
"对端在 SSL 握手中关闭连接(104:连接被对端重置),同时 SSL 与上游握手"。
"peer"是什么意思?
我想知道:"peer"是指upstream,意思是upstream在ssl握手时关闭了连接,还是指client,意思是client在load时关闭了连接平衡器和网络服务器在握手期间在内部?
设置
- nginx 负载均衡器
- 2 个网络服务器(上游)运行 IIS8
- SSL 提供商:Comodo
您的问题可能与您将 Comodo .bundle
文件与站点证书连接的顺序有关。
您需要将捆绑文件放在站点证书之后。
Click this link for more details
编辑
对等点必须与 Nginx 相同 "level",因为您的问题与 SSL 有关,所以必须是 OpenSSL。
我敢猜测您的 OS 是 Ubuntu 12.x 并且 OpenSSL 是 1.0.1。如果是这样,那么问题很可能与 Ubuntu 错误有关。
您似乎需要升级到 Ubuntu 13.04 或禁用 TLS 1.1。
Click this link for more details
无论如何,对端都不是上游
Peer 在本例中指的是上游。只是因为如果我们认为那个对等点是一个客户端,那就意味着两个 SSL 握手(客户端 -> nginx,nginx -> 上游)同时发生,这是没有意义的 - 客户端必须建立连接并发送查询,并且只有这样nginx才能选择合适的upstream连接
经过几个小时的调试,我们终于找到了问题的真正原因。错误消息是由客户端在没有域的情况下请求 nginx 产生的,例如https://11.22.33.44/robots.txt。 Nginx 然后将请求转发到 IIS 服务器,该服务器没有任何默认网站绑定到 https 的 ip-alone-requests。
原始问题的结论是,"peer" 实际上指的是上游(IIS),因为 IIS 是切断连接的那个。
我们选择解决此问题的解决方案是在 nginx 中不出现此错误,从而避免暴露客户端以 "down" 模式发送所有服务器的方法是将 nginx 配置为自行拒绝这些请求。另一种可能的解决方案是确保 IIS 对这些请求表现良好。
为了调试nginx错误案例,我需要先完全理解错误日志信息。我们的 nginx 会不时写入特定的错误日志消息。
日志消息
"对端在 SSL 握手中关闭连接(104:连接被对端重置),同时 SSL 与上游握手"。
"peer"是什么意思?
我想知道:"peer"是指upstream,意思是upstream在ssl握手时关闭了连接,还是指client,意思是client在load时关闭了连接平衡器和网络服务器在握手期间在内部?
设置
- nginx 负载均衡器
- 2 个网络服务器(上游)运行 IIS8
- SSL 提供商:Comodo
您的问题可能与您将 Comodo .bundle
文件与站点证书连接的顺序有关。
您需要将捆绑文件放在站点证书之后。
Click this link for more details
编辑
对等点必须与 Nginx 相同 "level",因为您的问题与 SSL 有关,所以必须是 OpenSSL。
我敢猜测您的 OS 是 Ubuntu 12.x 并且 OpenSSL 是 1.0.1。如果是这样,那么问题很可能与 Ubuntu 错误有关。
您似乎需要升级到 Ubuntu 13.04 或禁用 TLS 1.1。
Click this link for more details
无论如何,对端都不是上游
Peer 在本例中指的是上游。只是因为如果我们认为那个对等点是一个客户端,那就意味着两个 SSL 握手(客户端 -> nginx,nginx -> 上游)同时发生,这是没有意义的 - 客户端必须建立连接并发送查询,并且只有这样nginx才能选择合适的upstream连接
经过几个小时的调试,我们终于找到了问题的真正原因。错误消息是由客户端在没有域的情况下请求 nginx 产生的,例如https://11.22.33.44/robots.txt。 Nginx 然后将请求转发到 IIS 服务器,该服务器没有任何默认网站绑定到 https 的 ip-alone-requests。
原始问题的结论是,"peer" 实际上指的是上游(IIS),因为 IIS 是切断连接的那个。
我们选择解决此问题的解决方案是在 nginx 中不出现此错误,从而避免暴露客户端以 "down" 模式发送所有服务器的方法是将 nginx 配置为自行拒绝这些请求。另一种可能的解决方案是确保 IIS 对这些请求表现良好。