[Linux] Apache Tomcat 9 설치 및 시스템 서비스 등록

2026. 3. 3. 14:33·DevOps/Linux

Java 17과 Tomcat 9을 조합하여 안정적인 WAS를 구축하는 방법에 대해 알아보겠습니다.

 

1. Java 17 JDK 설치

Tomcat 실행을 위해 먼저 자바 환경을 구축합니다. 여기서는 OpenJDK 17 버전을 사용합니다.

# JDK 및 개발 도구 설치
dnf install -y java-17-openjdk.x86_64
dnf install -y java-17-openjdk-devel.x86_64

 

2. Tomcat 다운로드 및 압축 해제

/app 디렉토리를 생성하여 Tomcat을 관리합니다.

# 디렉토리 생성 및 이동
mkdir /app
cd /app

# Tomcat 9 패키지 다운로드 (버전 확인 필수)
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.115/bin/apache-tomcat-9.0.115.tar.gz

# 압축 해제
tar xvf apache-tomcat-9.0.115.tar.gz

 

 

3. systemd 서비스 등록

서버 재부팅 시 자동 실행 및 관리를 위해 서비스 유닛 파일을 생성합니다.

Tip: readlink -f $(which java) 명령어로 실제 JAVA_HOME 경로를 먼저 확인

 

# 파일 위치 찾기
$ which java
/usr/bin/java

# 위치 이동
cd /usr/bin/

# 링크의 원본 추적
$ readlink -f java
/usr/lib/jvm/java-17-openjdk-17.0.18.0.8-1.el9.x86_64/bin/java

 

# 서비스 등록
vi /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat 9 Web Application Container
After=network.target

[Service]
Type=forking
User=was
Group=was
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.18.0.8-1.el9.x86_64"
Environment="CATALINA_PID=/app/apache-tomcat-9.0.115/temp/tomcat.pid"
Environment="CATALINA_HOME=/app/apache-tomcat-9.0.115"
Environment="CATALINA_BASE=/app/apache-tomcat-9.0.115"
ExecStart=/app/apache-tomcat-9.0.115/bin/startup.sh
ExecStop=/app/apache-tomcat-9.0.115/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

 

 

4. 환경 변수 및 권한 설정

JVM 옵션 설정과 보안을 위한 권한 부여 단계입니다.

setenv.sh 설정

메모리 최적화 및 프로파일 설정을 위해 파일을 생성합니다. 

vi /app/apache-tomcat-9.0.115/bin/setenv.sh

 

export CATALINA_OPTS="$CATALINA_OPTS -Xms2G -Xmx2G -XX:+UseG1GC -Djava.awt.headless=true"
export SPRING_PROFILES_ACTIVE="dev"

 

권한 및 실행 설정

# 소유권 변경 (운영 계정: was)
chown -R was:was /app

# 스크립트 실행 권한 부여
chmod +x /app/apache-tomcat-9.0.115/bin/*.sh

# 서비스 활성화
systemctl daemon-reload
systemctl enable tomcat

 

5. 보안 및 방화벽 설정 (SELinux & Firewall)

RHEL 계열에서 필수적인 보안 설정입니다.

  • SELinux: Tomcat 바이너리에 대한 실행 권한 정책을 적용합니다.
sudo dnf install policycoreutils-python-utils
semanage fcontext -a -t bin_t "/app/apache-tomcat-9.0.115/bin(/.*)?"
restorecon -Rv /app/apache-tomcat-9.0.115/bin

 

  • Firewall: 8080 포트를 개방합니다.
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload

 

 

6. CI/CD 연동 (Jenkins Manager 설정)

젠킨스에서 원격 배포를 가능하게 하려면 매니저 설정이 필요합니다.

  • 사용자 추가: conf/tomcat-users.xml 에 젠킨스용 계정 권한 추가
vi /app/apache-tomcat-9.0.115/conf/tomcat-users.xml

 

  • 접근 제어: webapps/manager/META-INF/context.xml 수정
    • 기존의 RemoteAddrValve를 주석 처리하거나, 젠킨스 서버의 IP를 허용 리스트에 추가합니다.
vi /app/apache-tomcat-9.0.115/webapps/manager/META-INF/context.xml
<Valve className="org.apache.catalina.valves.RemoteCIDRValve" allow="127.0.0.0/8,::1/128, [젠킨스_IP]" />

 

 

'DevOps > Linux' 카테고리의 다른 글

[Linux]Rocky9.4 Jenkins 설치 및 설정 가이드  (0) 2026.03.04
[Linux] sudo, su, su - 차이 (권한, 환경변수)  (0) 2026.03.04
[Linux] ip 변경 - nmtui  (0) 2026.03.03
[Hyper-V] hv_balloon: balloon request will be partially fulfilled 오류 해결법  (0) 2026.03.03
[Hyper-v] Rocky Linux 9.4 가상환경 설치  (0) 2026.03.03
'DevOps/Linux' 카테고리의 다른 글
  • [Linux]Rocky9.4 Jenkins 설치 및 설정 가이드
  • [Linux] sudo, su, su - 차이 (권한, 환경변수)
  • [Linux] ip 변경 - nmtui
  • [Hyper-V] hv_balloon: balloon request will be partially fulfilled 오류 해결법
min_sol
min_sol
  • min_sol
    비글개발연구소🐾
    min_sol
  • 전체
    오늘
    어제
    • 분류 전체보기 (278)
      • Programming (128)
        • Algorithm (52)
        • JAVA (40)
        • GIS (5)
        • PyQt (10)
        • C# (11)
        • Mobile (6)
        • AI (4)
      • Backend (36)
        • Spring (14)
        • JSP (11)
        • Network (5)
      • Frontend (29)
        • React (11)
        • Vue (13)
        • Next.js (4)
      • Database (10)
        • PostgreSQL (1)
        • Oracle (8)
        • Elasticsearch (1)
      • DevOps (8)
        • Linux (7)
        • Mac (1)
      • Tools (31)
        • IntelliJ (1)
        • GitHub (10)
        • RPA (20)
      • Security (9)
      • etc (21)
        • ERROR (5)
        • 세미나 | 교육 (10)
        • 자격증 (1)
        • 일상 (2)
        • 2021 (2)
  • 인기 글

  • 태그

    자바
    이클립스
    코딩테스트
    알고리즘
    스윙
    jsp
    VUE
    명품자바에센셜
    vue.js
    자료구조
    백준
    자동화
    PyQt
    생능출판
    계산기
    PyQt5
    Java
    연습문제
    RPA
    spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
min_sol
[Linux] Apache Tomcat 9 설치 및 시스템 서비스 등록
상단으로

티스토리툴바