“한 대의 서버에 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
[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 인스턴스
bin/catalina.sh
export CATALINA_HOME=/usr/local/tomcat8_0export 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
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
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
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 인스턴스
conf/server.xml
<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">
<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">
~생략~
<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">
~생략~
<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
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)
/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) 모든 인스턴스를 위와같이 작업[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
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
[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 파일을 컴파일한 소스와 클래스 파일이 위치.
댓글 없음:
댓글 쓰기