이때까지 톰캣서버를 하나로 모든 프로젝트를 넣어 돌렸다.
프로젝트 하나를 배포하는데 모든 프로젝트를 내렸다가 올려야 했다.
그래서 톰캣을 프로젝트당 하나의 인스턴스를 생성하여 개별로 서버를 내렸다가 올릴수 있게 만들어야 했다.
멀티인스턴스를 찾아 포스팅해보려고 한다.
일단 톰캣을 설치합니다.(부모 톰켓 디렉토리가 된다.)
[root@localhost tomcat]# pwd /usr/local/tomcat |
groupadd tomcat 그룹추가
[root@localhost tomcat]# groupadd tomcat |
인스턴스를 위한 계정추가
[root@localhost tomcat]# useradd -g tomcat -s /usr/sbin/nologin server1 |
부모 톰캣 디렉토리에서 계정생성한 폴더로 복사하여 넣는다.(conf, webapps)
[root@localhost tomcat]# cp -a conf /home/server1 [root@localhost tomcat]# cp -a webapps /home/server1 [root@localhost tomcat]# mkdir /home/server1/logs [root@localhost tomcat]# mkdir /home/server1/work [root@localhost tomcat]# chown server1:tomcat -R /home/server1 |
각 계정에다가 넣은 conf파일 안에 server.xml을 열어 포트를 수정해준다.
<Server port="8805" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <!-- Security listener. Documentation at /docs/config/listeners.html <Listener className="org.apache.catalina.security.SecurityListener" /> --> <!--APR library loader. Documentation at /docs/apr.html --> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <!-- Prevent memory leaks due to use of particular java/javax APIs--> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> ..... <Connector port="8880" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="88443" emptySessionPath="true" URIEncoding="UTF-8"/> ..... <Connector port="8809" protocol="AJP/1.3" redirectPort="88443" URIEncoding="UTF-8"/> |
start.sh, shutdown.sh 생성
#!/bin/sh export INSTANCE_OWNER=avis export CATALINA_HOME=/usr/local/tomcat export CATALINA_BASE=/home/$INSTANCE_OWNER export CATALINA_PID=/home/$INSTANCE_OWNER/conf/avis.pid export JMX_OPTS=" -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=8091 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Djava.rmi.server.hostname=localhost \ -Dcom.sun.management.jmxremote.ssl=false " #export MEM_OPTS="-Xms4G -Xmx4G -XX:PermSize=256m -XX:MaxPermSize=256m" # ParallelGC export JVM_OPTS="-XX:NewRatio=3 -XX:ParallelGCThreads=4 -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/avis/logs -verbosegc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/home/avis/logs/gc_`date " +%Y%m%d%H"`.log -Djava.security.egd=file:/dev/./urandom" # CMS GC #export JVM_OPTS="-XX:NewRatio=7 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC # -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=75 # -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSFullGCsBeforeCompaction=0 # -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError # -XX:HeapDumpPath=/home/instance1/logs -verbosegc -XX:+PrintGCDetails # -XX:+PrintGCTimeStamps -Xloggc:/home/instance1/logs/gc_`date "+%Y%m%d%H"`.log # -Djava.security.egd=file:/dev/./urandom" export CATALINA_OPTS=" ${JMX_OPTS} ${CATALINA_OPTS} ${JVM_OPTS}" /bin/su -p -s /bin/sh $INSTANCE_OWNER $CATALINA_HOME/bin/startup.sh |
#!/bin/sh export INSTANCE_OWNER=avis export CATALINA_HOME=/usr/local/tomcat export CATALINA_BASE=/home/$INSTANCE_OWNER export CATALINA_PID=/home/$INSTANCE_OWNER/conf/avis.pid /bin/su -p -s /bin/sh $INSTANCE_OWNER $CATALINA_HOME/bin/shutdown.sh |
참고 : http://linux.systemv.pe.kr/tomcat-multi-instance-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0/
'STUDY > LINUX' 카테고리의 다른 글
MARIADB VERSION UPGRAGE (0) | 2018.08.14 |
---|---|
SVN: No repository found in XXX (0) | 2018.08.06 |
JENKINS DEPLOY ERROR (0) | 2018.07.25 |
CENTOS MARIA DB 한글깨짐 (0) | 2018.07.09 |
TIME ZONE 변경 (0) | 2018.05.02 |