공부?/국비 지원 일기장

프로젝트 진행중

무무요 2024. 9. 28. 02:49

3 tier 구성

 

WAS = ubuntu Linux 20.04 , Tomcat 9 사용

DB = ubuntu 20.04 mariadb 사용

DB Backup = ubuntu 20.04 mariadb 사용

 

WAS  tomcat 구성

1. tomcat 다운로드

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.75/bin/apache-tomcat-9.0.75.tar.gz

 

압축 해제

tar -xvzf apache-tomcat-9.0.75.tar.gz

 

설치 디렉터리 이동

mv apache-tomcat-9.0.75.tar.gz /opt/tomcat

 

Tomcat 서비스 설정

- systemd 서비스 파일을 만들어서 tomcat을 시스템 서비스로 등록한다.

vi /etc/systemd/system/tomcat.service

 

아래 내용 넣기

 

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking
User=root
Group=root
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Environment=CATALINA_HOME=/opt/tomcat
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

 

원래 예제에서 type=simple로 했더니 안되는 상황이 발생.

"simple" (기본값) 유닛이 시작된 경우 즉시 systemd 는 유닛의 시작이 완료되었다고 판단한다. 다른 유닛과 통신하기 위해 소켓을 사용하는 경우 이러한 설정을 사용하면 안된다.

- 다른 유닛과 통신을 위한거니 simple을 제외, type=forking 으로 변경

"forking" 자식 프로세스를 생성이 완료되는 단계까지를 systemd 가 시작이 완료되었다고 판단하게 된다. 부모 프로세스를 추적할 수 있도록 PIDFile= 필드에 PID 파일을 선언해 주어야 한다.

 

톰캣 한글 깨짐 방지

 

vi /opt/tomcat/conf/server.xml

maxParameterCount ..  밑에 부분에

URIEncoding="UTF-8" 추가

 

 

 

톰캣 서비스 실행

 

systemctl daemon-reload

systemctl start tomcat

systemctl enable tomcat

 

 

was 서버의 ip 뒤에 포트 8080을 붙여 접속

 

접속 성공