Tomcat+Apache를 통한 서비스 설정이다. Tomcat의 부하증가나 이중화 시 사용할 수 있다.
기본 적인 설정은 http://repository.egloos.com/4891216 내용과 동일하니까. 참고하고
설정 환경을 다음과 같이 바꾸자
[ ~/conf/httpd.conf ]
Include conf/mod_jk.conf
[ ~/conf/mod_jk.conf ]
LoadModule jk_module modules/mod_jk.so
JkWorkersFile "conf/workers.properties"
JkLogFile logs/mod_jk.log
JkLogLevel error
# 아래 설정은 상대경로 하위 모든것을 Tomcat으로 처리한다는 의미다. 특정 디렉토리를 지정할 수 있다.
JKMount /- loadballance # 옆 /-는 /별표(모든것)이다. 이글루스가 별표 처리를 잘못하고있다. 헐~~
[ ~/conf/workers.properties ]
worker.list=tomcat1, tomcat2, loadballance
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=9006
worker.tomcat1.lbfactor=100 => 반드시 '0'보다 커야한다. 이것은 job에 대한 비율이다.
worker.tomcat1.socket_timeout=1800 # 30분
worker.tomcat1.recycle_timeout=1800
worker.tomcat1.cache_timeout=1800
worker.tomcat1.socket_keepalive=1 # 사용 : 1, 미사용 0
worker.tomcat1.connection_pool_timeout=600
worker.tomcat2.type=ajp13
worker.tomcat2.host=localhost
worker.tomcat2.port=9007
worker.tomcat2.lbfactor=100
worker.tomcat2.socket_timeout=1800 # 30분
worker.tomcat2.recycle_timeout=1800
worker.tomcat2.cache_timeout=1800
worker.tomcat2.socket_keepalive=1 # 사용 : 1, 미사용 0
worker.tomcat2.connection_pool_timeout=600
# tomcat timeout에 따른 중복 발생 방지
worker.loadballance.retries=0
worker.tomcat1.retries=0
worker.tomcat2.retries=0
worker.tomcat1.socket_timeout=60
worker.tomcat2.socket_timeout=60
worker.loadballance.type=lb
# sticky방식은 일정 시간(session time)동안 한 WAS에 지속적으로 접속하는 설정임
# 사용 : true or 1, 미사용 : false or 0
worker.loadballance.sticky_session=1
worker.loadballance.balanced_workers=tomcat1,tomcat2
[ tomcat1 - server.xml 설정 ]
<Connector port="9006" maxHttpHeaderSize="8192" maxKeepAliveRequests="-1"
maxThreads="1000" minSpareThreads="500" maxSpareThreads="500"
enableLookups="false" redirectPort="8443" acceptCount="500"
compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css"
connectionTimeout="600000" disableUploadTimeout="true" Server=" " protocol="AJP/1.3" />
<Engine jvmRoute="tomcat1" name="Catalina" defaultHost="localhost">
[ tomcat2 - server.xml 설정 ]
<Connector port="9007" maxHttpHeaderSize="8192" maxKeepAliveRequests="-1"
maxThreads="1000" minSpareThreads="500" maxSpareThreads="500"
enableLookups="false" redirectPort="8443" acceptCount="500"
compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css"
connectionTimeout="600000" disableUploadTimeout="true" Server=" " protocol="AJP/1.3" />
<Engine jvmRoute="tomcat2" name="Catalina" defaultHost="localhost">
* 위의 server.xml에서 Server= " "은 보안을 위하여 아파치 정보 유출을 막는다.
* Apache 프로세스보다 Tomcat프로세스를 많이 잡을 것
[ mod_jk 설치 ]
# cd tomcat-connectors-1.2.32
# cd native
# ./configure --with-apxs=/usr/local/apache_lb/bin/apxs
# make
덧글