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를 활성화하는 과정을 추가가 필요
추가 설정 사항은 추후 업로드 예정.

반응형
'Dev > Linux' 카테고리의 다른 글
[Linux] SSH 자동 로그아웃(Timeout 설정) (1) | 2024.12.02 |
---|---|
[Linux] 리눅스 네트워크 IP 설정하기 (ifcfg-ens192) (0) | 2024.11.25 |
[Linux] volume group "rl" has insufficient free space : 51200 required (disk umount & 파티션 축소) (1) | 2024.11.17 |
[Linux] 디스크 파티션 생성 및 마운트 설정 (5) | 2024.11.16 |
[Linux] NFS 마운트 (0) | 2024.11.12 |