Apache 2.2 error_log에서 다음 메시지로 발생하는 상황을 이해하려고합니다.
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
피
mod_proxy로 Apache 2.2를 실행하고 있습니다. 이 Apache가 httpd.conf의 5 분 TimeOut 값과 관련된 요청을 시간 초과합니까? (이것은 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_mod.html#workers
답변
귀하의 질문에 대답하기 위해, 프록시 모드의 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
에
modules / proxy / mod_proxy_http.c
APLOG_DEBUG에 로그 레벨을 올리면 다음과 같은 추가 메시지가 표시 proxy: read timeout
됩니다.