Google compute engine GCE网络负载平衡器在处于非活动状态后挂起
我正在谷歌云上建立一个新的服务,其中有一个“网络负载均衡器”。在安装过程中,我只使用一台后端服务器。经过一段时间的不活动后,对负载平衡器地址的第一个请求似乎不会传递到后端服务器Google compute engine GCE网络负载平衡器在处于非活动状态后挂起,google-compute-engine,google-cloud-platform,Google Compute Engine,Google Cloud Platform,我正在谷歌云上建立一个新的服务,其中有一个“网络负载均衡器”。在安装过程中,我只使用一台后端服务器。经过一段时间的不活动后,对负载平衡器地址的第一个请求似乎不会传递到后端服务器 负载平衡器报告后端服务器运行正常 我在后端服务器访问日志中看到每5秒就有健康检查请求进入服务器 如果我直接向后端服务器的健康检查URL发出请求,我会得到一个成功的响应 如果我通过负载平衡器请求执行健康检查URL(或任何其他URL),浏览器将不确定地挂起,并且似乎从未向后端服务器发出任何请求 如果我随后刷新浏览器,页面将
- 负载平衡器报告后端服务器运行正常
- 我在后端服务器访问日志中看到每5秒就有健康检查请求进入服务器
- 如果我直接向后端服务器的健康检查URL发出请求,我会得到一个成功的响应
- 如果我通过负载平衡器请求执行健康检查URL(或任何其他URL),浏览器将不确定地挂起,并且似乎从未向后端服务器发出任何请求
- 如果我随后刷新浏览器,页面将正常加载,进一步的请求将继续正常加载,直到一段不活动的时间(小时?)过去
173.51.253.242 - devuser [09/May/2015:19:15:27 +0000] "GET /api/ HTTP/1.1" 499 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36" "-"
173.51.253.242 - devuser [09/May/2015:19:15:27 +0000] "GET /api/ HTTP/1.1" 200 5 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36" "-"
请注意,这两个请求在同一秒内到达(当我刷新时),失败的请求的响应代码为499,响应时间为0。499表示连接已被客户端关闭,因此我认为这意味着在我点击刷新之前,负载平衡器未启动请求,此时它已与后端服务器建立了两个连接。使用实际答案更新此请求,因为mensi的上述评论似乎已找到问题的根源
将TCP keepalive添加到平衡的主机解决了问题。如果您只有一台服务器,您要平衡什么?系统上线后,我将添加其他服务器。该系统目前正在开发中。两次运行状况检查的代码是什么样子的?运行状况检查只返回状态200,但任何URL都会出现此问题。我只是用健康检查来做测试,因为这是最简单的测试。你是不是在打电话?