“한 대의 서버에 Tomcat 인스턴스를 여러개 설치하여 운영하기 위한 매뉴얼 입니다. 여기서는 1개의 배포(webapps 및 라이브러리(lib)용) 인스턴스와 2개의 서비스용 인스턴스를 설치하는 방법입니다.”
* 인스턴스별 포트(shutdown, http, https, ajp) 및 환경설명 *
tomcat8_0 인스턴스 : 8005, 8080, 8443, 8009 배포용 인스턴스로 unpackWARs=”true” 설정
tomcat8_1 인스턴스 : 8004, 8081, 8444, 8010 서비스용 인스턴스 1
tomcat8_2 인스턴스 : 8003, 8082, 8445, 8011 서비스용 인스턴스 2
1. 준비환경
1) CentOS 7 에 JDK 설치
2) tomcat 용 계정생성
| [root@localhost ~]# adduser -s /sbin/nologin tomcat |
2. 톰캣 다운로드
| [root@localhost ~]# cd /usr/local/src [root@localhost src]# wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-8/v8.5.11/bin/apache-tomcat-8.5.11.tar.gz [root@localhost src]# tar xvfz apache-tomcat-8.5.11.tar.gz [root@localhost src]# cp apache-tomcat-8.5.11 /usr/local/tomcat8_0 -r [root@localhost src]# cp apache-tomcat-8.5.11 /usr/local/tomcat8_1 -r [root@localhost src]# cp apache-tomcat-8.5.11 /usr/local/tomcat8_2 -r |
3. bin/catalina.sh 수정
(모든 인스턴스에 127라인 쯤 #Get standard environment variables 앞에 다음 추가)
1) tomcat8_0 인스턴스
| export CATALINA_HOME=/usr/local/tomcat8_0 export TOMCAT_HOME=/usr/local/tomcat8_0 export CATALINA_BASE=/usr/local/tomcat8_0 CATALINA_PID=/usr/local/tomcat8_0/bin/tomcat.pid # jdk 를 소스 설치 시 export JAVA_HOME=/usr/local/jdk1.8 |
2) tomcat8_1 인스턴스
| export CATALINA_HOME=/usr/local/tomcat8_1 export TOMCAT_HOME=/usr/local/tomcat8_1 export CATALINA_BASE=/usr/local/tomcat8_1 CATALINA_PID=/usr/local/tomcat8_1/bin/tomcat.pid # jdk 를 소스 설치 시 export JAVA_HOME=/usr/local/jdk1.8 |
3) tomcat8_2 인스턴스
| export CATALINA_HOME=/usr/local/tomcat8_2 export TOMCAT_HOME=/usr/local/tomcat8_2 export CATALINA_BASE=/usr/local/tomcat8_2 CATALINA_PID=/usr/local/tomcat8_2/bin/tomcat.pid # jdk 를 소스 설치 시 export JAVA_HOME=/usr/local/jdk1.8 |
4. conf/server.xml 수정
1) tomcat8_0 인스턴스
| <Server port="8005" shutdown="SHUTDOWN"> ~생략~ <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ~생략~ <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> ~생략~ <Host name="localhost" appBase="../tomcat8_0/webapps" unpackWARs="true" autoDeploy="true"> |
2) tomcat8_1 인스턴스
| <Server port="8004" shutdown="SHUTDOWN"> ~생략~ <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" /> ~생략~ <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" /> ~생략~ <Host name="localhost" appBase="../tomcat8_0/webapps" unpackWARs="false" autoDeploy="true"> |
3) tomcat8_2 인스턴스
| <Server port="8003" shutdown="SHUTDOWN"> ~생략~ <Connector port="8082" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8445" /> ~생략~ <Connector port="8011" protocol="AJP/1.3" redirectPort="8443" /> ~생략~ <Host name="localhost" appBase="../tomcat8_0/webapps" unpackWARs="false" autoDeploy="true"> |
5. 권한설정, 심볼릭링크
1) 권한설정
| chown tomcat.tomcat /usr/local/tomcat8* -R |
2) 심볼릭링크
| rm -Rf /usr/local/tomcat8_1/lib ln -s /usr/local/tomcat8_0/lib /usr/local/tomcat8_1/lib rm -f /usr/local/tomcat8_1/conf/context.xml ln -s /usr/local/tomcat8_0/conf/context.xml /usr/local/tomcat8_1/conf/context.xml rm -Rf /usr/local/tomcat8_2/lib ln -s /usr/local/tomcat8_0/lib /usr/local/tomcat8_2/lib rm -f /usr/local/tomcat8_2/conf/context.xml ln -s /usr/local/tomcat8_0/conf/context.xml /usr/local/tomcat8_2/conf/context.xml |
6. systemctl 서비스 등록
1) tomcat8_0 인스턴스 (vi /usr/lib/systemd/system/tomcat_0.service)
| [Unit] Description=Tomcat8 Service After=syslog.target After=network.target [Service] Type=forking User=tomcat ExecStart=/usr/local/tomcat8_0/bin/catalina.sh start ExecStop=/usr/local/tomcat8_0/bin/catalina.sh stop [Install] WantedBy=multi-user.target |
2) 모든 인스턴스를 위와같이 작업
3) 서비스 시작 및 등록
| [root@localhost ~]# systemctl start tomcat_0 [root@localhost ~]# systemctl enable tomcat_0.service [root@localhost ~]# systemctl start tomcat_1 [root@localhost ~]# systemctl enable tomcat_1.service [root@localhost ~]# systemctl start tomcat_2 [root@localhost ~]# systemctl enable tomcat_2.service |
7. 기타
1) 웹서비스 점검
웹브라우저에서 http://ip주소:8080 , http://ip주소:8081, http://ip주소:8082 접속합니다.
2) 톰캣 인스턴스 상태점검
| [root@localhost ~]# for i in {0..2};do systemctl status tomcat_$i;done |
3) 톰캣 디렉토리 구성 및 설명
– /bin : 톰캣의 바이너리와 실행스크립트가 들어 있는 디렉토리
startup.sh : 톰캣 시작 스크립트
shutdown.sh : 톰캣 종료 스크립트
version.sh : 톰캣 버전과 운영체제, JDK 정보를 출력하는 스크립트
configtest.sh : 설정의 이상유무 테스트
– /conf : 모든 webapp 에 영향을 미치는 톰캣의 전역 설정파일이 들어 있는 디렉토리
server.xml : 가장 중요한 설정파일로 톰캣의 서비스, 엔진, 호스트 등의 내용을 설정
tomcat-users.xml : 역할을 기반으로 하는 사용자 권한과 인증 정보를 설정.
web.xml : 모든 웹애플리케이션을 배포할 때 사용할 기본설정.
context.xml : 세션, 쿠키 저장 경로 등 톰캣에 의존적인 설정을 지정.
– /lib : 모든 webapps 에서 사용가능한 JAR 파일 위치
-/logs : 로그 저장 디렉토리로 카탈리나 엔진은 catalina.yyyy-mm-dd.log 와 server.xml 에 지정된 호스트 로그는 localhost.yyyy-mm-dd.log 로 저장
– /webapps : 웹애플리케이션이 있는 디렉토리
– /work : 서블릿이나 JSP 파일을 컴파일한 소스와 클래스 파일이 위치.