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