본문 바로가기

미들웨어/Apache,Tomcat

Apache mod_jk timeout 정리

반응형

Apache에는 다양한 Timeout설정이 존재한다.

 

해당 포스팅에서는 mod_jk와 관련된 timeout들의 값을 설명한다.


1. workers.properties

worker.template.connection_pool_timeout=60
worker.template.reply_timeout=360000
worker.template.socket_timeout=60
worker.template.socket_connect_timeout=3000
worker.template.connect_timeout=3000
worker.template.prepost_timeout=3000
worker.template.ping_timeout=3000

 

설정값 default 설명 Error Code
connection_pool_timeout(s) default : 0
(정리X)
mod_jk와 AJP listener와의 Connection을 정리하는 시간
비활성 connection을 connection_pool_minsize만큼 줄인다.
 
reply_timeout(ms) default : 0
(무한대기)
mod_jk가 remote에 request를 전달 후 response를 받는 순간 사이의 대기시간 504
socket_timeout(s) default : 0
(무한대기)
요청처리 대기시간. Apache의 기본 Timeout값이 된다. 502
socket_connect_timeout(ms) default :
socket_timeout * 1000
socket_timeout과 동일하게 동작하며 단위만 다르다. 502
connect_timeout(ms) default : 0
(무한대기)
mod_jk가 AJP listener와 connection을 맺은 후 한번
ping을 보내고 pong을 기다리는 시간(ping모드 C 참조)
 
prepost_timeout(ms) default : 0
(무한대기)
mod_jk가 AJP listener에게 request를 전달하기 전 ping을
보내고 pong을 기다리는 시간(ping모드 P참조)
 
ping_timeout(ms) default : 10000(ms) ping mode에 따라 CPing이후 CPong을 기다리는 시간
connect_timeout, prepost_timeout설정의 우선순위가 높음
 
  • socket_timeout과 reply_timeout이 함께 설정된 경우 reply_timeout값이 우선순위가 높음
  • Apache의 Timeout과 reply_timeout이 함께 설정된 경우 reply_timeout값이 우선순위가 높음

 

2. Public Cloud 환경의 ELB(appGW)에서 keepalive에 의한 504 발생

  • 최근 업무에서 자주 발생. 짧은 시간동안 다수의 request가 들어오는 경우에 발생
  • CSP사에서는 keepalive timeout설정값을 LB의 idle timeout값보다 크게 설정할 것을 권고하지만
    실제로 더 크게 설정해도 해결이 안되는 경우가 다수 있음(keepalive를 Off하여 해결)

 

반응형

 

업무를 하며 실제로 겪은 이슈를 기반으로 정리한 Timeout설정 내용 이다.

이 외에도 Apache자체의 Timeout설정과 mod_proxy의 Timeout설정은 별도로 있기 때문에 각 환경에 맞게 확인하여 설정하면 될 것 같다.

반응형