Ошибка сервера балансировки нагрузки 502 GCP и "backend_connection_closed_before_data_sent_to_client" IIS 10 - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть балансировщик нагрузки GCP с 4 веб-серверами IIS 10.Спорадически это идет с 502-Ошибка сервера .В журналах видно, что это из-за backend_connection_closed_before_data_sent_to_client .Я прочитал статью https://cloud.google.com/compute/docs/load-balancing/http/ и в ней говорится, что тайм-аут активности активности должен быть установлен равным 620 секундам для nginx и apache.Как мне сделать то же самое в IIS 10.

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Разобрался с этим после поднятия тикета google cloud team.Я помещаю это здесь, чтобы другие могли извлечь выгоду.

Шаг 1. Установите тайм-ауты в Google Cloud Load Balancer

Существует два параметра тайм-аута в Google Cloud Load Balancer.

  1. Тайм-аут и
  2. Тайм-аут разрыва соединения.

См. Скриншот ниже.Load balancer settings

Обе вышеуказанные настройки должны быть одинаковыми.В нашем случае существует несколько длительных запросов, и оно установлено на 1800 секунд.

Шаг 2. Установите время ожидания соединения в IIS на 20 секунд больше, чем значение балансировщика нагрузки

Под именем сайта IIS - перейдите к Расширенные настройки и затем установите значение Время ожидания подключения на 20 секунд больше, чем время ожидания балансировщика нагрузки.В моем случае 1820.

IIS Settings

Идея состоит в том, что соединение IIS не должно быть прервано по тайм-ауту перед балансировщиком нагрузки.Если время ожидания истекло, это может привести к ошибке backend_connection_closed_before_data_sent_to_client .

0 голосов
/ 25 апреля 2018

Вы можете установить это в web.config в качестве атрибута времени ожидания выполнения в http runtime по умолчанию, когда вы устанавливаете keep alive, он устанавливает время в 120 секунд. Если все еще не работает, то может быть там является прокси-сервером между вашим процессом ответа на запрос. Вы должны проверить тайм-аут этого прокси-сервера.

Я столкнулся с тем же сценарием в gcp, и я установил все на уровне балансировки нагрузки, но он не работал. Затем я обнаружил, что между нашими процессами был прокси-сервер. Дайте мне знать, если вы можете рассказать более подробно

...