我正在尝试诊断位于某些负载均衡器和代理后面的Web服务。在负载下,沿途的其中一台服务器开始返回HTTP 504错误,这表示网关超时。有了这个背景,这是我的问题:
当代理向目标服务器发出请求,并且目标服务器收到请求但没有及时响应(因此超过超时),导致504,当目标服务器 最终会回复吗?是否知道请求者不再对响应感兴趣?它是否愉快地发送响应而不知道网关已经将HTTP错误响应发送回客户端?任何见解都会非常感激。
答案 0 :(得分:1)
它依赖于实现,但任何符合RFC 2616第8.1.2.1节的代理都应在504上包含Connection: close
并关闭连接回客户端,以便它不再与已经失效的服务器连接返回的任何东西相关联,这也应该被关闭。在负载下,这种情况下可能存在竞争条件,因此您可能会查看代理中的错误。
如果客户端想要进一步请求,它将创建一个到代理的新连接,这将导致与后端的新连接。