이번 실습에서는 Java 기반 웹 애플리케이션 실행 환경인 Apache Tomcat을 리눅스에 설치하고, 관리 사용자 설정 및 systemd를 통한 서비스 자동 실행 설정까지 진행하였다. 자동화 스크립트와 서비스 파일 구성까지 완성해 보았다.
1. Tomcat이란?
Tomcat은 Apache 재단에서 개발한 Java 웹 애플리케이션 서버로, 서블렛(Servlet)과 JSP(Java Server Pages)를 실행할 수 있는 서블릿 컨테이너이다.
Tomcat 관련 용어 정리
용어 | 설명 |
서블릿 | 클라이언트 요청을 받아 동적으로 처리하는 자바 프로그램 |
컨테이너 | 서블릿을 실행 및 관리하는 환경 |
manager-gui, admin-gui | Tomcat 관리용 웹 GUI 접근 권한 역할 |
2. Tomcat 설치 (패키지 기반)
apt update
apt install tomcat10 -y
apt install tomcat10-admin
서비스 제어 명령어
systemctl start tomcat10
systemctl enable tomcat10
systemctl disable tomcat10
3. Tomcat 관리자 계정 추가 (tomcat-users.xml 수정)
관리 웹 페이지 (http://IP:8080)에 로그인하기 위한 관리자 계정을 아래 명령어로 삽입했다.
sed -i '/^ <user username="tomcat"/i \ <user username="admin" password="1234" roles="manager-gui,admin-gui" />' /etc/tomcat10/tomcat-users.xml
이 설정을 적용하면 admin 사용자가 manager-gui, admin-gui 권한으로 GUI를 통해 Tomcat을 관리할 수 있다.
기존 사용자 권한 수정 예시
sed -i 's/<user username="tomcat" password="<must-be-changed>" roles="tomcat"\/>/<user username="tomcat" password="1234" roles="tomcat,manager-gui,admin-gui"\/>/g' /etc/tomcat10/tomcat-users.xml
4. 방화벽 설정
Tomcat은 기본적으로 8080 포트를 사용하므로 해당 포트를 개방해야 외부 접근이 가능하다.
ufw allow 8080/tcp
5. 설치 및 설정 자동화 스크립트
아래는 설치부터 방화벽 허용, 사용자 추가까지 포함한 자동화 스크립트 코드이다.
#!/bin/bash
apt update
apt install ufw
apt install tomcat10 -y
apt install tomcat10-admin
systemctl start tomcat10
systemctl enable tomcat10
sed -i '/^ <user username="tomcat"/i \ <user username="admin" password="1234" roles="manager-gui,admin-gui" />' /etc/tomcat10/tomcat-users.xml
sed -i 's/<user username="tomcat" password="<must-be-changed>" roles="tomcat"\/>/<user username="tomcat" password="1234" roles="tomcat,manager-gui,admin-gui"\/>/g' /etc/tomcat10/tomcat-users.xml
ufw allow 8080/tcp
systemctl restart tomcat10
echo "Tomcat 설치 및 설정 완료!"
6. tar.gz 수동 설치 및 systemd 연동
1) Tomcat 다운로드
cd /opt
curl -O https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.34/bin/apache-tomcat-10.1.34.tar.gz
tar -zxvf apache-tomcat-10.1.34.tar.gz
2) 사용자 및 그룹 생성
groupadd tomcat
useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
3) 심볼릭 링크, 권한 설정
ln -s /opt/tomcat/apache-tomcat-10.1.34 /opt/tomcat/latest
chown -R tomcat:tomcat /opt/tomcat
chmod +x /opt/tomcat/latest/bin/*.sh
7. Tomcat systemd 서비스 등록
Tomcat을 부팅 시 자동 시작하도록 하기 위해 다음과 같이 systemd 서비스 파일을 작성하였다.
# /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 10.1 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_BASE=/opt/tomcat/latest"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
서비스 적용 :
systemctl daemon-reload
systemctl start tomcat
systemctl enable tomcat
8. 마무리
이번 실습에서는 Tomcat 웹 애플리케이션 서버를 패키지 설치 방식과 수동 설치 방식 모두 실습하였고, 관리자 계정 구성, 포트 방화벽 설정, systemd 연동까지 다뤘다. 특히, 자동화 스크립트 및 서비스 구성은 실제 서버를 운영할 때 필수적인 내용으로 더 의미 있는 실습이었다.
이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.
모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.
'리눅스 서버 구축' 카테고리의 다른 글
리눅스 핵심 네트워크 서버 - Apache 설치 및 SSL 인증서 자동 설정 실습 (2) | 2025.05.27 |
---|---|
리눅스 핵심 네트워크 서버 - BIND DNS 구축 실습 (0) | 2025.05.27 |
리눅스 Application 네트워크 서버 - DHCP 서버 구축 및 설정 실습 (0) | 2025.05.25 |
리눅스 Application 네트워크 서버 - SSH 서버 구축 및 MobaXterm 활용 (2) | 2025.05.25 |
리눅스 핵심 네트워크 서버 - NFS(Network File System) 서버 구축 및 마운트 실습 (2) | 2025.05.25 |