GCP 负载平衡器 502 服务器错误和“backend_connection_closed_before_data_sent_to_client”IIS 10

San*_*anS 1 iis load-balancing http-error google-cloud-platform 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 中做同样的事情。

San*_*anS 7

在筹集了一张谷歌云团队的票后弄清楚了这一点。我把它放在这里是为了让其他人受益。

第 1 步:在 Google Cloud Load Balancer 中设置超时

Google 云负载均衡器中有两个超时设置。

  1. 超时
  2. 连接耗尽超时。

请参阅下面的屏幕截图。 负载均衡器设置

以上两个设置都需要相同。在我们的例子中,有许多长时间运行的请求,它被设置为 1800 秒。

步骤 2:在 IIS 中设置连接超时 20 秒大于负载均衡器设置

在 IIS 站点名称下 - 转到高级设置,然后将连接超时值设置为比负载平衡器超时多 20 秒。在我的情况下是 1820。

IIS 设置

这个想法是 IIS 连接不应该在负载平衡器之前超时。如果超时,则可能会导致backend_connection_closed_before_data_sent_to_client错误。