iis - GCP 负载平衡器 502 服务器错误和“backend_connection_closed_before_data_sent_to_client”IIS 10
问题描述
我有带有 4 个 IIS 10 Web 服务器的 GCP 负载平衡器。偶尔会出现502-Server error。在日志中显示这是因为backend_connection_closed_before_data_sent_to_client。我已阅读文章https://cloud.google.com/compute/docs/load-balancing/http/并说需要将 nginx 和 apache 的 keepalive timout 设置为 620 秒。我如何在 IIS 10 中执行相同的操作。
解决方案
在提出票证谷歌云团队后想通了这一点。我把它放在这里是为了让其他人受益。
第 1 步:在 Google Cloud Load Balancer 中设置超时
谷歌云负载均衡器中有两个超时设置。
- 超时和
- 连接耗尽超时。
上述两个设置都需要相同。在我们的例子中,有许多长时间运行的请求,它设置为 1800 秒。
第 2 步:将 IIS 中的连接超时设置为大于负载平衡器设置 20 秒
在 IIS 站点名称下 - 转到高级设置,然后将连接超时值设置为比负载平衡器超时多 20 秒。在我的情况下是 1820。
这个想法是 IIS 连接不应该在负载平衡器之前超时。如果超时,则可能导致backend_connection_closed_before_data_sent_to_client错误。
推荐阅读
- php - 如何将带有 php 文件目录的数组传递到 _GET
- python - 用于 ftp 文件的 os.path.getctime
- shell - 什么是推荐的 POSIX sh shebang
- php - 使用证书加密文件导致“期望公钥”
- c++ - 如何创建一个 QTableWidgetItem 右对齐的长文本,左侧有省略号?
- ios - Swift 4 Ios 在多个屏幕上使用相同的 UIView
- angular - 在返回 Http 结果之前执行代码
- php - 如何在 API 使用 php 中的 JSON 中的 for 循环中使用另一个循环
- python - PyInstaller 的问题
- r - 在没有连接的情况下调用 Jupyterhub 内的 Web 服务器失败