Назад | Перейти на главную страницу

Время выхода прокси-сервера Apache

Я пытаюсь понять, что происходит, с помощью следующего сообщения в нашем журнале ошибок 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.asп

Мы запускаем 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

Вы увеличиваете тайм-аут в ProxyPass директива:

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

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

Похоже, ваш сервер на 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

Чтобы ответить на ваш вопрос, да, Apache2 httpd в режиме прокси регистрирует это сообщение об ошибке, когда время ожидания Apache2 httpd истекает. Если бы причиной был сервер, подключенный к Apache2 httpd в режиме прокси, было бы другое сообщение.

Сообщение состоит из нескольких частей: The timeout specified has expired текстовый эквивалент APR_TIMEUP код ошибки, см .:

srclib / апр / разное / 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 слишком.