GCE 网络负载均衡器在一段时间不活动后挂起

GCE Network Load Balancer Hangs after period of inactivity

我正在使用 "Network Load Balancer" 在 Google 云上设置一项新服务。我在安装过程中只使用一台后端服务器。在一段时间不活动后,对负载平衡器地址的第一个请求似乎没有传送到后端服务器。

这在生产环境中似乎不是问题,但像这样的任何无法解释的问题都会让我对使用 GCE 负载均衡器进行实时站点感到不舒服。

这个问题一半是帮助请求,一半是错误报告。这是已知问题还是我做错了什么?

感谢您的帮助。

更新

回顾服务器日志,我看到挂起的请求确实出现在访问日志中,但直到我刷新浏览器并且它显示 0 秒响应时间。

这是两个请求。第一个是挂起的请求。二是刷新。

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 解决了这个问题。