반응형
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설정은 별도로 있기 때문에 각 환경에 맞게 확인하여 설정하면 될 것 같다.
반응형
'미들웨어 > Apache,Tomcat' 카테고리의 다른 글
Tomcat 설치 및 기본구조 (0) | 2023.03.03 |
---|---|
Apache mod_security를 사용한 보안강화 (0) | 2023.03.02 |
mod_status를 사용한 Apache monitoring (0) | 2023.02.21 |
mod_jk를 통한 Apache/Tomcat 연동 가이드 (0) | 2023.02.21 |
Apache의 mod_proxy 설정 (0) | 2023.02.21 |