| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- AJP
- Custom
- CSS애니메이션
- CentOS 7
- 캘린더 라이브러리
- linux
- Apache
- Egov
- tomcat
- 달력 api
- spring boot 3
- jdk설치
- Oracle
- fullcalendar
- PCRE
- thymeleaf egov custom tag
- vmware
- jdk1.8
- 달력 라이브러리
- springboot
- type-hangul
- 한글타이핑
- apache2
- APR
- 캘린더 api
- jdk
- jstl
- custom tag
- httpd
- thymeleaf
- Today
- Total
SSG
[Linux] Centos 7 Tomcat Multi Instance 설정 본문
1. 폴더 구조 설정
mkdir -pv usr/local/tomcat/engine
새로운 폴더 생성
mv usr/local/tomcat8/* usr/local/tomcat/engine
기존 Tomcat을 새로운 폴더의 engine 폴더로 이동
mkdir -pv usr/local/tomcat/instance1
mkdir -pv usr/local/tomcat/instance2
Tomcat Instance에 사용할 디렉토리를 생성
mkdir -pv usr/local/tomcat/instance1/bin
mkdir -pv usr/local/tomcat/instance2/bin
Tomcat Instance를 시작 및 종료하는 스크립트가 위치할 디렉토리를 생성
2. 시작 / 종료 스크립트 생성 및 수정
vi usr/local/tomcat/instance1/bin/start.sh
vi usr/local/tomcat/instance2/bin/start.sh
vi 편집기로 start.sh 생성 후 아래 내용 삽입
#!/bin/sh
export CATALINA_HOME=usr/local/tomcat/engine
export CATALINA_BASE=usr/local/tomcat/instance1
$CATALINA_HOME/bin/startup.sh
Tomcat Instance 시작 스크립트를 작성
Instance1에서 수정한 것 처럼 instance2도 같이 생성 및 수정
vi /app/tomcat9/instance1/bin/shutdown.sh
vi /app/tomcat9/instance2/bin/shutdown.sh
vi 편집기로 shutdown.sh 생성 후 아래 내용 삽입
#!/bin/sh
export CATALINA_HOME=usr/local/tomcat/engine
export CATALINA_BASE=usr/local/tomcat/instance1
$CATALINA_HOME/bin/shutdown.sh
Tomcat Instance 종료 스크립트를 작성
Instance1에서 수정한 것 처럼 instance2도 같이 생성 및 수정
3. Tomcat Instance server.xml 포트 수정
vi usr/local/tomcat/instance1/conf/server.xml
vi usr/local/tomcat/instance2/conf/server.xml
Tomcat Instance가 사용할 Port를 변경하기 위해 server.xml를 수정
자신이 원하는 포트로 수정
<!-- Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" at this level.
Documentation at /docs/config/server.html
-->
<Server port="8105" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
....
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL/TLS HTTP/1.1 Connector on port 8180
-->
<Connector port="8180" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8143" />
....
<!-- Define an AJP 1.3 Connector on port 8109 -->
<Connector protocol="AJP/1.3"
port="8109"
redirectPort="8143" />
....
- Shutdown Port(8105) : Tomcat 종료 Port
- Connector Port(8180) : Tomcat 접속 Port
- Redirect Port(8143) : SSL을 사용하는 요청이 들어오면 해당 Port로 Redirect 함
- AJP Port(8109) : AJP 관련 Port (Apache 연동 용도)
4. setenv.sh 생성 및 수정
vi usr/local/tomcat/instance1/bin/setenv.sh
vi usr/local/tomcat/instance2/bin/setenv.sh
Tomcat Instance가 사용할 ENV 파일인 setenv.sh 파일을 작성
사용할 Instance 디렉토리는 CATALINA_BASE를 수정
Instance1에서 수정한 것 처럼 instance2, instance3도 같이 수정
#!/bin/sh
#===========================================================
#Tomcat Setting
#===========================================================
CATALINA_HOME=usr/local/tomcat/engine
CATALINA_BASE=usr/local/tomcat/instance1
JAVA_HOME=$(echo $(readlink -f /etc/alternatives/java) | sed -e 's/\/bin\/java//g')
PATH=$PATH:$JAVA_HOME/bin:/bin:/sbin
LOG_DIR=$CATALINA_BASE/logs
export JAVA_HOME PATH CATALINA_HOME CATALINA_BASE LOG_DIR
#===========================================================
#JVM Memory Setting
#===========================================================
CATALINA_OPTS="-server"
CATALINA_OPTS="${CATALINA_OPTS} -Xms256m"
CATALINA_OPTS="${CATALINA_OPTS} -Xmx256m"
CATALINA_OPTS="${CATALINA_OPTS} -XX:MetaspaceSize=128m"
CATALINA_OPTS="${CATALINA_OPTS} -XX:MaxMetaspaceSize=128m"
#===========================================================
#GC, Heapdump Setting
#===========================================================
CATALINA_OPTS="${CATALINA_OPTS} -XX:+UseG1GC"
CATALINA_OPTS="${CATALINA_OPTS} -verbose:gc"
CATALINA_OPTS="${CATALINA_OPTS} -Xloggc:${LOG_DIR}/gc.log_$(date +%Y%m%d%H%M%S)"
CATALINA_OPTS="${CATALINA_OPTS} -XX:+PrintGCDetails"
CATALINA_OPTS="${CATALINA_OPTS} -XX:+PrintGCTimeStamps"
CATALINA_OPTS="${CATALINA_OPTS} -XX:+PrintGCDateStamps"
CATALINA_OPTS="${CATALINA_OPTS} -XX:+HeapDumpOnOutOfMemoryError"
CATALINA_OPTS="${CATALINA_OPTS} -XX:HeapDumpPath=${LOG_DIR}/java_pid.hprof"
CATALINA_OPTS="${CATALINA_OPTS} -XX:+PrintAdaptiveSizePolicy"
usr/local/tomcat/instance1/bin/start.sh
usr/local/tomcat/instance2/bin/start.sh
Tomcat Instance 기동
5. 작동 확인
ss -atnlp |grep java
Tomcat Instance별 포트가 LISTEN 상태인지 확인
LISTEN 0 1 [::ffff:127.0.0.1]:8105 *:* users:(("java",pid=21022,fd=69))
LISTEN 0 1 [::ffff:127.0.0.1]:8205 *:* users:(("java",pid=21114,fd=69))
LISTEN 0 100 [::1]:8109 [::]:* users:(("java",pid=21022,fd=62))
LISTEN 0 100 [::1]:8209 [::]:* users:(("java",pid=21114,fd=62))
LISTEN 0 100 *:8180 *:* users:(("java",pid=21022,fd=59))
LISTEN 0 100 *:8280 *:* users:(("java",pid=21114,fd=59))
curl --HEAD localhost:8180
Tomcat Instance 정상 기동을 확인하기 위해 curl 명령어로 확인
[root@localhost ~]# curl --HEAD localhost:8180
HTTP/1.1 200
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Sat, 29 Oct 2022 23:55:37 GMT
[root@localhost ~]# curl --HEAD localhost:8280
HTTP/1.1 200
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Sat, 29 Oct 2022 23:55:39 GMT
6. 방화벽 설정
firewall-cmd --permanent --zone=public --add-port=8180/tcp
firewall-cmd --permanent --zone=public --add-port=8280/tcp
usr/local/tomcat/instence1/conf/server.xml에서 설정했던 포트 열기
firewall-cmd --reload
방화벽 재시작
firewall-cmd --zone=public --list-all
방화벽 적용 확인
7. Oracle VMware 포트 포워딩 설정

설정

포트 포워딩

포트 포워딩 추가 후 호스트 포트 게스트 포트 열어주기
참조 :
WAS) Tomcat Multi Instance (2) - 멀티 인스턴스 구성
INTRO Tomcat Multi Instance를 구성하는 과정에 대한 내용을 공유드립니다. Apache Tomcat Multi Instance에 대한 자세한 내용은 아래의 글을 참고하기 바랍니다. WAS) Tomcat Multi Instance (1) - 구조 및 장단점 Apache T
lilo.tistory.com
'Centos 7' 카테고리의 다른 글
| [Linux] Apache - Tomcat Multiple Instance 연동 (0) | 2023.02.28 |
|---|---|
| [Linux] Centos 7 Apache-Tomcat 연동 (0) | 2023.02.27 |
| [Linux] Centos 7 Apache 2 설치 및 설정 (0) | 2023.02.27 |
| [Linux] Centos 7 OPEN JDK 1.8 설치 및 설정 (0) | 2023.02.27 |
| [Linux] Centos 7 Tomcat 8 설치 및 설정 (0) | 2023.02.24 |