GCP负载均衡器502错误:IIS 10如何配置620秒长连接超时?
解决IIS 10与GCP负载均衡的502错误:配置Keep-Alive超时
这个backend_connection_closed_before_data_sent_to_client错误的核心原因很明确:GCP负载均衡的默认空闲超时是600秒,当IIS的Keep-Alive超时比这个时间短的时候,负载均衡还没主动断开连接,IIS就先把后端连接关了,自然会触发502错误。按照官方要求把IIS的超时设为620秒就能解决,下面是两种具体配置方式:
方法1:通过IIS管理器图形界面操作
- 打开IIS管理器,直接选中左侧的服务器节点(不要选单个网站,要做全局配置)
- 在中间功能区找到并双击「HTTP响应头」
- 查看右侧操作栏,点击「设置常用响应头」
- 在弹出的窗口里,勾选「启用HTTP保持活动」,然后把「保持活动超时」的数值改成620
- 点击确定后,记得重启IIS服务(可以用命令行执行
iisreset,或者在IIS管理器里右键服务器节点选「重启」)
方法2:用AppCmd命令行批量/快速配置
如果是多台服务器需要配置,或者习惯命令行操作,直接在管理员权限的命令提示符里执行:
appcmd set config /section:httpProtocol /allowKeepAlive:true /keepAliveTimeout:"00:10:20"
这里的00:10:20就是620秒(10分钟20秒),和图形界面设置的效果完全一致。执行完同样要重启IIS生效。
验证配置是否生效
配置完可以用curl工具测试一下,执行:
curl -I http://你的服务器IP或域名
看返回的响应头里有没有Keep-Alive: timeout=620,如果有就说明配置成功了。
另外要注意:如果单个网站的HTTP响应头设置里单独改了Keep-Alive参数,会覆盖服务器级别的配置,所以要确保网站级别没有冲突的设置。
内容的提问来源于stack exchange,提问作者SanS
相关产品推荐
相关产品推荐

