이번 목차는 멀티 인스턴스 대한 내용입니다.
멀티 인스턴스를 하기 위해서 톰캣에 기본적인 서버 구조와 멀티인스턴스 서버 구조에 대해 확인 할 필요가 있습니다.
기본적인 톰캣 서버 구조 입니다.
bin | 명령어 스크립트들이 있는 디렉터리 |
conf | 설정 파일 디렉터리 |
lib | 라이브러리 디렉터리 |
logs | 로그 디렉터리 |
temp | 임시 파일 디렉터리 |
webapps | 웹 애플리케이션 deploy 디렉터리 |
work | .class로 컴파일된 디렉터리 |
멀티 인스턴스로 구성하기 위해서는 다음과 같은 구조로 이루어 집니다.
Tomcat Engine
ㄴ bin
ㄴ lib
ㄴ ... 등,등
Tomcat Instance 1
ㄴ conf
ㄴ webapps
ㄴ work
ㄴ logs
Tomcat Instance 2
ㄴ conf
ㄴ webapps
ㄴ work
ㄴ logs
1. 멀티 인스턴스 구성하기
# 인스턴스 디렉토리 생성
[tomcat@localhost tomcat]$ pwd /product/tomcat [tomcat@localhost tomcat]$ mkdir ptom1 [tomcat@localhost tomcat]$ mkdir ptom2 |
# 설정 파일 복사 및 디렉토리 생성
- instance 1번
[tomcat@localhost ptom1]$ cp -R ../apache-tomcat-9.0.62/conf . [tomcat@localhost ptom1]$ cp -R ../apache-tomcat-9.0.62/webapps . [tomcat@localhost ptom1]$ mkdir logs [tomcat@localhost ptom1]$ mkdir work |
- instance 2번
[tomcat@localhost ptom2]$ cp -R ../ptom1/* . |
# server.xml 수정
각각의 인스턴스의 server.xml에 들어가 다음 ports 을 임의로 변경 해주면 됩니다.
<Server port="8005" shutdown="SHUTDOWN"> . . <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> . . |
첫번째로 설정되는 port는 shutdown하기 위해 필요한 port
두번째로 설정되는 port는 실질적으로 tomcat을 호출하는 port
세번째로 설정되는 port는 redirect를 하기위한 port
# 기동 스크립트
[tomcat@localhost bin]$ pwd /product/tomcat/ptom1/bin [tomcat@localhost bin]$ ls -lrt 합계 8 -rwx------ 1 tomcat tomcat 216 4월 5 11:19 shutdown.sh -rwx------ 1 tomcat tomcat 1407 4월 5 13:34 startup.sh |
- startup.sh
빨간색 부분만 환경에 맞춰 수정해주면 된다.
#!/bin/sh # start parameter export CATALINA_HOME=/product/tomcat/apache-tomcat-9.0.62 export CATALINA_BASE=/product/tomcat/ptom1 SERVER_NAME=ptom1 LOG_DIR=${CATALINA_BASE}/logs HEAP_DIR=${LOG_DIR}/dump GC_LOG_HOME=${LOG_DIR}/gc GC_LOG_FILENM=gc_${SERVER_NAME}_`date "+%Y%m%d%H"`.log # Server Name CATALINA_OPTS="-Denv.servername=${SERVER_NAME} -Denv=product" # Heap Memory USER_MEM_ARGS="${USER_MEM_ARGS} -Xms1024m -Xmx1024m" USER_MEM_ARGS="${USER_MEM_ARGS} -XX:NewSize=256m -XX:MaxNewSize=256m" USER_MEM_ARGS="${USER_MEM_ARGS} -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m" USER_MEM_ARGS="${USER_MEM_ARGS} -XX:+UseG1GC" # GC USER_MEM_ARGS="${USER_MEM_ARGS} -verbosegc" USER_MEM_ARGS="${USER_MEM_ARGS} -Xloggc:${GC_LOG_HOME}/${GC_LOG_FILENM}" USER_MEM_ARGS="${USER_MEM_ARGS} -XX:+PrintGCDetails" USER_MEM_ARGS="${USER_MEM_ARGS} -XX:+PrintGCTimeStamps" USER_MEM_ARGS="${USER_MEM_ARGS} -XX:+PrintHeapAtGC" # Heap Dump USER_MEM_ARGS="${USER_MEM_ARGS} -XX:+HeapDumpOnOutOfMemoryError" USER_MEM_ARGS="${USER_MEM_ARGS} -XX:HeapDumpPath=${HEAP_DIR}" # Change to Urandom USER_MEM_ARGS="${USER_MEM_ARGS} -Djava.security.egd=file:/dev/./urandom" export CATALINA_OPTS="${CATALINA_OPTS} ${USER_MEM_ARGS}" if [ -d ${GC_LOG_HOME} ]; then echo "GC_LOGPATH=${GC_LOG_HOME}" else echo "<`date`> Makeing ${GC_LOG_HOME} Directory..." mkdir -p ${GC_LOG_HOME} fi cd $CATALINA_HOME/bin ./startup.sh |
- shutdown.sh
빨간색 부분만 환경에 맞춰 수정해주면 된다.
#!/bin/sh export CATALINA_HOME=/product/tomcat/apache-tomcat-9.0.62 export CATALINA_BASE=/product/tomcat/ptom1 export CATALINA_OPTS="-Denv=product -Denv.servername=ptom1" cd $CATALINA_HOME/bin ./shutdown.sh |
# 호출
인스턴스 1번 8081 port, 인스턴스 2번 8082 port가 정상적으로 호출되는것을 확인 할 수 있습니다.
'미들웨어 > Tomcat, Apache' 카테고리의 다른 글
Tomcat Tutorials - 톰캣 설치 (1) (0) | 2022.04.04 |
---|