У нас есть настройка, при которой браузер отправляет http-запрос к Box A, который, в свою очередь, делает http-запрос к Box B. Мы сталкиваемся с тем, что Box A ожидает ответа от Box B в течение двух минут, после чего пользователи видят:
The page cannot be displayed
Explanation: There is a problem with the page you are trying to reach and it cannot be displayed.
Try the following:
* Refresh page: Search for the page again by clicking the Refresh button. The timeout may have occurred due to Internet congestion.
* Check spelling: Check that you typed the Web page address correctly. The address may have been mistyped.
* Access from a link: If there is a link to the page you are looking for, try accessing the page from that link.
Technical Information (for support personnel)
* Error Code: 404 Not Found. The requested item could not be located. (12028)
Просматривая журналы в блоке B, мы видим, что выполнение запрошенной работы занимает 5 минут.
Проблема в том, что тайм-ауты apache на обоих боксах установлены 1200 (20 м), а не 120 (2 м).
Есть идеи, где искать?
Редактировать: Box A обрабатывает запрос, выполняя некоторый код Perl, который отправляет HTTP-запрос к Box B.
Я смог определить, что ответ, с которым я столкнулся, был сгенерирован брандмауэром Microsoft ISA, не имеющим ничего общего с Apache или даже нашими ящиками. Я не знал, что у нашего клиента наши ящики находятся за брандмауэром или даже что у брандмауэров есть настройки тайм-аута.
Если это из браузера. Я подозреваю, что это тайм-аут на стороне браузера. В некоторых браузерах его можно настроить, см. Например http://support.microsoft.com/kb/813827 как настроить его для Internet Explorer.
Одним из обходных путей может быть периодическая отправка некоторых данных, таких как комментарий HTML, в браузер, чтобы поддерживать соединение.