Apache Proxy TimeOut


19

Я намагаюся зрозуміти, що відбувається із наступним повідомленням у нашому помилковому журналі Apache 2.2:

Wed May 18 21:03:29 2011] [error] [client 172.20.10.10] (70007)The timeout specified has expired: proxy: error reading status line from remote server super-load1-ga.test.com, referer: https://tester2.test.com/boom/ga/inside.asp

Ми запускаємо Apache 2.2 з mod_proxy. Чи цей час Apache закінчує запит, пов’язаний із його значенням 5 хвилин TimeOut у httpd.conf? (Це означає, що він не отримує відповідь від віддаленого сервера за 5 хв.) Або це просто відповідь віддаленого сервера, що говорить, що він не може обробити з'єднання?

Apache швидко закінчується з своїх MaxClients, коли я бачу цю помилку.

Короткий приклад введення проксі:

ProxyPass /boom/ga https://super-load1-ga.test.com
ProxyPassReverse /boom/ga https://super-load1-ga.test.com

Відповіді:


28

Ви збільшуєте час очікування в директиві ProxyPass :

ProxyPass /boom/ga https://super-load1-ga.test.com connectiontimeout=300 timeout=300

Значення тайм-ауту в секундах .


6
Якщо ви вже не визначаєте аргумент тайм-ауту ProxyPass, Timeoutбуде використано ваше глобальне значення. Див. Httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxytimeout та httpd.apache.org/docs/2.2/mod/core. html # timeout
синхронізація

Я також отримую помилку Час вказаного часу закінчився .... У мене вимкнений ProxyRequests, тому це пов'язано? я повинен зробити це для збільшення тайм-ауту ......
Ashish Karpe

5

Здається, що ваш сервер https://super-load1-ga.example.comзаймає занадто багато часу, щоб відповісти.

У такому сценарії, якщо він просто сидить там, тоді Apache процес чекає цього. Цей процес фактично заблокований, тобто нічого іншого зробити не можна. Якщо ви не вичерпаєтеся досить швидко, вам не вистачить процесів Apache і натисніть MaxClients, що, здається, має сенс.

Ви повинні мати журнали на сайті super-load1-ga.test.com, щоб побачити, як довго тривають запити, вони повинні приймати вік.

Ви могли потенційно скоротити час очікування на з'єднанні ProxyPass

http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers


Дякую за чудову відповідь Філ. Отже, ви думаєте, що це вражає основне значення httpd.conf TimeOut 5 хв., І Apache вичерпує сеанс? Оскільки у мене немає встановленого тайм-ауту для проксі-сервера, це буде за замовчуванням. Як ви вважаєте, на пропозицію про проміжок часу проксі, я повинен використовувати змінну ProxyTimeout або команду ProxySet? (Проксі-з'єднання timetimeout = 5 тайм-аут = 30)
roacha

2

Щоб відповісти на ваше запитання, так, Apache2 httpd у режимі проксі записує повідомлення про помилку, коли Apache2 httpd вимикається. Якщо сервер, підключений до Apache2 httpd в режимі проксі, був причиною, було б інше повідомлення.

Повідомлення має кілька частин: The timeout specified has expiredце текстовий еквівалент APR_TIMEUPкоду помилки, див.

srclib / apr / misc / unix / errorcodes.c

case APR_TIMEUP:
    return "The timeout specified has expired";

Тоді proxy: error reading status line from remote server super-load1-ga.test.comв

модулі / проксі / mod_proxy_http.c

Якщо ви підключили рівень свого журналу до APLOG_DEBUG, вам слід побачити додаткове повідомлення: proxy: read timeoutтакож.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.