我正在使用“网络负载均衡器”在Google Cloud上设置新服务。我在安装过程中只使用一个后端服务器。在一段时间不活动之后,对负载均衡器地址的第一个请求似乎没有传递到后端服务器。
这似乎不是生产中的问题,但是这样的任何无法解释的问题让我在现场使用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表示连接已被客户端关闭所以我认为这意味着请求不是由loadbalancer启动,直到我点击刷新,此时它连接到后端服务器。
答案 0 :(得分:0)
使用实际答案更新此内容,因为上述评论似乎已成为问题的根源。
将TCP keepalive添加到平衡主机解决了这个问题。