<간단 설명>
Apache Http의 설정 파일이다.
LoadModule jk_module modules/mod_jk.so <IfModule mod_jk.c> JkWorkersFile "/home/www/httpd/conf/workers.properties" JkLogFile "| /home/www/httpd/bin/rotatelogs –l /home/www/httpd/logs/mod_jk.log. %y%m%d 86400 " JkLogLevel error JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " #JkRequestLogFormat "%w %V %T" </IfModule> |
mod_jk 로그도 full 되어서 write를 못하면 apache httpd 서버가 동작이 안될 수 있으니 rotatelogs를 쓰는 것이 좋다.
필요시에는 JkLogLevel 을 error에서 debug 혹은 info 레벨로 낮추어서 테스트할 수 있다. 디폴트 값은 error이다.
하루 단위로 mod_jk 로그가 생성되도록 하였다. 옵션에 대한 상세한 mod_jk.log 설정은 다음과 같다.
JkLogFile에 적힌 옵션들과 숫자들의 의미이다.
• %y : 연도 (year)
• %m : 월 (month)
• %d : 일 (day)
• 86400 : 하루를 초로 나타난 시간 (60 * 24 * 24)
JkLogLevel 의 경우는 default로 error로 초기화 되나, 필요에 따라서 info나 debug로 설정한다.
JkLogStampFormat 설명은 다음과 같다.
• %a : 요일
• %b : 월 (month)
• %d : 일 (day)
• %H:%M:%S %Y] : 시간정보 와 연도 (year)
JkRequestLogFormat 설명은 다음과 같다.
• %w : Tomcat worker의 이름
• %V : 요청한 Domain 이름
• %T : 처리 시간 (소수점 초 단위)
JkRequestLogFormat을 정의하면, Apache Http 서버에서 Apache Tomcat 서버로 Http요청으로 넘어갈 때, 로그가 저장이 된다.
[Fri Dec 03 14:47:19 2010] solution_search search.nhncorp.com 0.017900 |
따라서, Error 가 발생할 때만, 로그가 저장되길 원한다면, JkRequestLogFormat을 사용하지 말아야 한다. 그 이유는 내부적으로 log level을 JK_LOG_REQUEST_LEVEL로 지정하고 있는데, JkLogLevel과는 상관없이 출력하도록 코딩이 되어 있다.
WAS에서 Flush 되지 않거나 하는 문제가 발생시 다음의 옵션을 사용하여 Flush 되게 할 수 있다.
JkOptions +FlushPackets +FlushHeader |
예를 들어, chunked encoding 으로 gzip을 전송시 바로 flush가 안될 수 있는데, 위의 옵션을 추가하면 바로 flush 되는 것을 확인할 수 있다. (Http server 2.2.8부터 가능)
만약 동작이 되지 않는다면, JkLogLevel 을 trace로 내리면 구체적인 로그를 확인할 수 있다. 로그 레벨의 디폴트 값은 info이며, 레빌의 수준은 trace, debug, info, warn, error 단계로 나눌 수 있다.
<상세 로그 보기>
Apache Http서버는 mod_jk 관련 로그를 상세하게 출력이 가능하다. Failover시에 대한 정보를 아래와 같은 포맷으로 출력할 수 있다.
CustomLog "| /home/www/httpd/bin/rotatelogs -l /home/www/httpd/modjklog.%Y%m%d 86400" mod_jk_log env=!nolog-request
추가된 설정의 의미를 설명한다.
%{pid}P : prefork 기준 Apache Http process 아이디
%{JK_WORKER_NAME}n : load balancer worker 이름
%{JK_LB_FIRST_NAME}n : 처음 시도한 load balancer worker의 이름
%{JK_LB_FIRST_STATE}n : 처음 시도한 load balancer worker 의 상태
%{JK_LB_LAST_NAME}n : 마지막으로 Http 요청을 처리한 load balancer worker의 이름
%{JK_LB_LAST_STATE}n : 마지막으로 Http 요청을 처리한 load balancer worker의 상태
%{JK_REQUEST_DURATION}n : 처리시간
'Web service' 카테고리의 다른 글
Apache http 서버와 tomcat 서버간의 연결 유의사항 (0) | 2012.01.17 |
---|---|
mod_jk의 workers.properties 설명 (1) | 2012.01.17 |
Apache Http 서버의 VirtualHost 설정 (0) | 2012.01.17 |
Apache Http 서버의 ListenBackLog 지시자 (0) | 2012.01.17 |
Https 서버를 개발환경에 구축 & 10년짜리 사실 인증서 만들기 & 적용 (0) | 2012.01.17 |