Позвольте мне предварить это, сказав, что я не системный администратор, я программист.
Недавно наши системные администраторы установили балансировщики нагрузки F5. С тех пор я заметил, что каждый раз, когда время ожидания запроса истекает и заканчивается выдачей 500, балансировщик нагрузки отправляет тот же запрос на другой наш сервер. IIS отправляет ответ на тайм-аут, даже если сценарий все еще выполняется. Даже запросы POST дублируются, если сценарий выполняется более 5 минут. Мне это кажется потенциальной проблемой, особенно с сайтами электронной коммерции, где выставляются счета клиентам.
Это проблема только некоторых из наших более длительных скриптов (но это серьезная проблема). Мне сказали, что это ожидаемое поведение, и нам придется изменить наш код, чтобы он соответствовал. Итак, мои вопросы:
Взгляните на эту запись о пассивном мониторинге приложений в Big-IP
Мои ответы на ваши вопросы, какими бы неутешительными они ни были,
Может быть (зависит от конфигурации пассивного мониторинга)
Пользователь не видит ошибки
«Действие при отключении службы» - это настраиваемый параметр.
Если возникает ошибка 500, это указывает на проблему на веб-сервере. Затем F5 просто отправит эту ошибку подключающемуся клиенту. Он не будет "повторно отправлять" запрос по собственному желанию. Это может произойти только в том случае, если клиент повторно попытается выполнить запрос. На этом этапе этот запрос может быть сбалансирован нагрузкой для другого члена пула, хотя нет никакой гарантии, и он будет основан либо на постоянстве, либо на используемом методе балансировки нагрузки (циклический перебор, минимум соединений и т. Д.).
Короче говоря, если у вас нет действительно сумасшедшего iRule на вашем F5, это поведение вызвано самим скриптом.
(Примечание: я полтора года работал инженером службы поддержки Nework для F5, работая с LTM)