아파치 프록시 타임 아웃


18

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

답변:


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#proxytimeouthttpd.apache.org/docs/2.2/mod/core를
동기화

또한 geeting 오류입니다. 지정된 시간 초과가 만료되었습니다 .... 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_mod.html#workers


훌륭한 답변 Phil에 감사드립니다. 그래서 이것이 주요 httpd.conf TimeOut 값 5 분에 도달하고 Apache가 세션을 시간 초과한다고 생각하십니까? 프록시 특정 시간 초과가 설정되어 있지 않으므로 기본값으로 설정됩니다. Proxy timeout 제안에서 ProxyTimeout 변수 또는 ProxySet 명령을 사용해야한다고 생각하십니까? (ProxySet connectiontimeout = 5 timeout = 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

modules / proxy / mod_proxy_http.c

APLOG_DEBUG에 로그 레벨을 올리면 다음과 같은 추가 메시지가 표시 proxy: read timeout됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.