OS Rocky Linux 8.7

1. 패키지 업데이트

#yum 속도 개선
dnf update

dnf update로 예상치 못한 업데이트가 적용될 수 있으니 주요 패키지 업데이트를 제한하거나 중요한 설정은 백업하는 것이 좋다.

 

2. SELinux 설정

cat /etc/selinux/config | grep SELINUX

#SELINUX가 disabled 되어 있지 않은 경우 아래 명령어 진행
SELINUX=disabled

빠른 테스트를 위해 SELinux를 임시 비활성화한 것이다.

 

 3. OpenJDK 버전

톰캣 8.x는 Java 8 이상에서만 실행 가능하므로, OpenJDK 버전을 반드시 확인해야한다.

8버전 이하 사용 시 오류가 발생할 수 있음.

java -version

#openjdk version "1.8.0_352" 이상이어야함

 

4. 설치 경로 및 계정 설정

#톰캣 그룹 생성
groupadd tomcat

#원하는 경로에 폴더 생기(원하는 위치에 생성하면 된다.)
mkdir /opt/tomcat

#계정 생성 및 경로 지정
useradd -s /bin/nologin -g tomcat -d /opt/tomcat tomcat       

#계정 생성 및 경로 확인
cat /etc/passwd |grep tomcat

 

5. 톰캣 다운로드

#Wget을 이용하여 설치
wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.84/bin/apache-tomcat-8.5.84.tar.gz

#압축 해제 (폴더 생성한 위치에 풀어주면 된다)
tar -zxvf apache-tomcat-10.0.10.tar.gz -C /opt/tomcat --strip-components=1

 

6. 권한 설정

chown -R tomcat: /opt/tomcat  (권한 변경)

ls -al /opt/ | grep tomcat  (권한 변경 확인)

sh -c 'chmod +x /opt/tomcat/bin/*.sh'   (bin 경로 스크립트 실행하기 위한 권한 설정(+x))

ls -al /opt/tomcat/bin | grep ".sh"  (변경 확인)

권한 설정 중 /opt/tomcat/logs 디렉토리에도 적절한 권한이 설정 되었는지 확인이 필요하다.

chmod -R 750 /opt/tomcat/logs

chown -R tomcat: /opt/tomcat

systemctl restart tomcat

systemctl enable --now tomcat

systemctl status tomcat

 

7. 아파치 톰캣 실행 테스트

#프로세스 구동
/opt/tomcat/bin/startup.sh

#카탈리나 실시간 로그 확인
tail -f /opt/tomcat/logs/catalina.out

#톰캣 프로세스 확인
ps -ef |grep tomcat

#프로세스 중지
/opt/tomcat/bin/shutdown.sh  (중지)

 

7-1. systemd 서비스 파일 설정

#Environment="JAVA_HOME=/usr/lib/jvm/jre" 대신 설치된 JDK 경로를 정확히 명시해야한다.
#예를 들어:

Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk"

서비스 파일에서 ExecStart와 ExecStop에 쉘 스크립트를 직접 실행하는 대신 catalina.sh를 사용하는 방법도 고려해야한다.

ExecStart=/bin/bash /opt/tomcat/bin/catalina.sh start
ExecStop=/bin/bash /opt/tomcat/bin/catalina.sh stop

 

8. 방화벽 설정

방화벽은 firewall을 사용하는 경우에만 설정해주면 된다.

#java 포트 확인(보통 8080, 443[SSL]일 경우도 확인 필요)
netstat -nlp  |grep java

#포트 허용 추가
firewall-cmd --zone=public --permanent --add-port=8080/tcp

#적용
firewall-cmd --reload

#확인
firewall-cmd --list-all | grep ports  (추가 확인)

 

9. 실행 파일 생성

vi /etc/systemd/system/tomcat.service

#아래 내용 붙여넣기 (위에서 언급한대로 경로는 수정 필요)
[Unit]
Description=Tomcat webs servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"

Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

 

10. 추가 설정 사항

- /opt/tomcat/conf/server.xml에서 포트 설정, Connector 설정을 수정이 필요

- 톰캣 로그가 누적되지 않도록 logrotate 설정 과정을 추가가 필요

- SSL 인증서 설치 및 톰캣에서 HTTPS를 활성화하는 과정을 추가가 필요


추가 설정 사항은 추후 업로드 예정.

반응형