SW/리눅스

Ubuntu 22.04 : Tomcat 10 설치 방법, 예제, 명령어

얇은생각 2024. 1. 15. 07:30
반응형

이 문서는 Ubuntu 22.04 Tomcat 10을 설치하고 구성하는 방법을 설명합니다.

아파치 톰캣(Apache Tomcat)은 오픈 소스 웹 서버 및 자바 서블릿(Java Servlet) 컨테이너(container)입니다. 자바 기반 웹 사이트 및 응용 프로그램을 구축하는 데 가장 인기 있는 선택 사항 중 하나입니다. 톰캣은 가볍고 사용하기 쉬우며 강력한 추가 기능 생태계를 가지고 있으며 많은 대규모 웹 응용 프로그램을 지원합니다.

 

 

Java 설치

Tomcat 10은 자바 버전 11 이상을 시스템에 설치해야 합니다. 자바 플랫폼의 오픈소스 구현인 OpenJDK 11을 설치하겠습니다.

sudo 권한을 가진 루트 또는 사용자로 다음 명령을 실행하여 패키지 인덱스를 업데이트하고 OpenJDK 11 JDK 패키지를 설치합니다:

sudo apt update
sudo apt install openjdk-11-jdk

 

 

완료되면 Java 버전을 확인하여 Tomcat이 올바르게 설치되었는지 확인할 수 있습니다:

java -version

 

 

출력은 다음과 같습니다:

openjdk version "11.0.17" 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu222.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu222.04, mixed mode, sharing)

 

 

시스템 사용자 생성

루트 사용자 아래에서 Tomcat을 실행하는 것은 보안 문제이며 위험할 수 있습니다. 다음 명령은 Tomcat 서비스를 실행할 home directory /opt/tomcat을 가진 새 시스템 사용자 및 그룹을 만듭니다:

sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

 

 

Tomcat 다운로드 중

Tomcat 이진 배포판은 Tomcat 소프트웨어 다운로드 페이지에서 다운로드할 수 있습니다.

작성 시점에서 최신 Tomcat 버전은 10.1.4입니다. 다음 단계를 계속 진행하기 전에 Tomcat 10 다운로드 페이지를 방문하여 새로운 버전을 사용할 수 있는지 확인하십시오.

wget 명령을 사용하여 Tomcat zip 파일을 /tmp 디렉토리에 다운로드합니다:

VERSION=10.1.4
wget https://www-eu.apache.org/dist/tomcat/tomcat-10/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp

 

 

Tomcatar 파일이 다운로드되면 /opt/tomcat 디렉토리로 압축을 풉니다:

sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/

 

.

Tomcat은 정기적으로 업데이트됩니다. 업데이트에는 버그 수정, 보안 패치 및 새로운 기능이 포함됩니다. 버전과 업데이트를 더 잘 제어하려면 Tomcat 설치 디렉토리를 가리키는 latest라는 심볼 링크를 만들 것입니다:

sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest

 

 

나중에 Tomcat 인스턴스를 업그레이드해야 할 때 새로운 버전을 풀고 해당 버전을 가리키도록 symplink를 변경하기만 하면 됩니다.

 이전에 만든 시스템 사용자는 Tomcat 설치 디렉토리에 액세스할 수 있어야 합니다.

디렉토리 소유권을 사용자 및 그룹 tomcat으로 변경합니다:

sudo chown -R tomcat: /opt/tomcat

 

 

다음을 실행하려면 Tomcat bin 디렉토리 내의 셸 스크립트가 실행 가능해야 합니다:

sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

 

 

이 스크립트는 Tomcat 인스턴스를 시작, 중지 및 관리하는 데 사용됩니다.

 

 

System D Unit 파일 만들기

셸 스크립트를 실행하여 Tomcat 서버를 시작하고 중지하는 대신 시스템화된 단위 파일을 통해 실행할 것입니다. 이렇게 하면 Tomcat은 서비스로 실행됩니다.

텍스트 편집기를 열고 /etc/systemd/system/directory tomcat.service 단위 파일을 만듭니다:

sudo nano /etc/systemd/system/tomcat.service

 

 

다음 구성을 붙여넣습니다:

# /etc/systemd/system/tomcat.service

[Unit]
Description=Tomcat 10 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

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

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

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

[Install]
WantedBy=multi-user.target

 

 

Java 설치 경로가 다를 경우 JAVA_HOME 변수를 수정합니다.

파일을 저장했다가 닫고 다음 명령을 실행하여 새 단위 파일을 생성했음을 시스템에 알립니다:

sudo systemctl daemon-reload

 

 

Tomcat 서비스를 활성화하고 시작합니다:

sudo systemctl enable --now tomcat

 

 

서비스 상태를 확인합니다:

sudo systemctl status tomcat

 

 

Tomcat 서버가 활성화되어 실행 중임을 출력에 표시해야 합니다:

The output should show that the Tomcat server is enabled and running:

● tomcat.service - Tomcat 10 servlet container
     Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-12-24 18:53:37 UTC; 6s ago
    Process: 5124 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
   Main PID: 5131 (java)
...

 

 

다른 시스템화된 서비스와 동일하게 Tomcat을 시작, 중지 및 재시작할 수 있습니다:

sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat

 

 

 

방화벽 구성

방화벽을 사용하여 트래픽을 필터링하고 로컬 네트워크 외부에서 Tomcat에 액세스하려면 포트 8080을 열어야 합니다. 다음 명령을 사용하여 포트를 엽니다:

sudo ufw allow 8080/tcp

 

 

일반적으로 운영 환경에서 Tomcat을 실행할 때 로드 밸런서나 역방향 프록시를 사용해야 합니다. 내부 네트워크에서만 포트 8080에 액세스할 수 있도록 하는 것이 좋습니다.

 

 

Tomcat 웹 관리 인터페이스 구성

이때는 포트 8080의 웹 브라우저를 이용하여 Tomcat에 접속할 수 있어야 합니다. 아직 사용자를 생성하지 않았기 때문에 웹 관리 인터페이스에 접속할 수 없습니다.

Tomcat 사용자 및 역할은 Tomcat-users.xml 파일에 정의되어 있습니다. 기본적으로 이 파일에는 사용자 또는 역할을 만드는 방법을 보여주는 설명과 예제가 포함되어 있습니다.

이 예에서는 "admin-gui" "manager-gui" 역할을 가진 사용자를 만듭니다.

"admin-gui" 역할을 사용하면 사용자는 /host-manager/html URL에 액세스하여 가상 호스트를 생성, 삭제 및 관리할 수 있습니다. "manager-gui" 역할을 사용하면 /host-manager/html 인터페이스를 통해 컨테이너를 다시 시작하지 않고도 웹 애플리케이션을 배포 및 배포 해제할 수 있습니다.

텍스트 편집기로 tomcat-users.xml 파일을 열고 다음과 같이 새 사용자를 만듭니다:

sudo nano /opt/tomcat/latest/conf/tomcat-users.xml

 

 

/opt/tomcat/latest/conf/tomcat-users.xml
<tomcat-users>
<!--
    Comments
-->
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>

 

 

사용자 이름과 암호를 더 안전한 것으로 변경해야 합니다.

기본적으로 Tomcat 웹 관리 인터페이스는 로컬 호스트에서 Manager Host Manager 앱에 대한 액세스만 허용하도록 구성됩니다. 원격 IP에서 웹 인터페이스에 액세스하려면 이러한 제한을 제거해야 합니다. 이는 다양한 보안 영향을 미칠 수 있으며 운영 체제에는 권장되지 않습니다.

어디서나 웹 인터페이스에 액세스할 수 있도록 하려면 다음 두 개의 파일을 열고 노란색으로 강조 표시된 줄에 주석을 달거나 제거합니다.

 

 

관리자 앱의 경우:

sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml

 

 

Host Manager 앱의 경우:

sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml

 

# context.xml

<Context antiResourceLocking="false" privileged="true" >
<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>

 

 

특정 IP에서만 웹 인터페이스에 액세스하려면 블록에 주석을 다는 대신 공용 IP를 목록에 추가합니다.

공용 IP 41.41.41이라고 가정하고 해당 IP에서만 액세스를 허용하려고 합니다:

# context.xml

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>

 

 

허용되는 IP 주소 목록은 세로줄 |로 구분된 목록입니다. 단일 IP 주소를 추가하거나 정규 표현식을 사용할 수 있습니다.

작업이 완료되면 Tomcat 서비스를 다시 시작하여 변경 내용을 적용합니다:

sudo systemctl restart tomcat

 

 

Tomcat 설치 테스트

브라우저를 열고 http://<your_domain_or_IP_address>:8080을 입력합니다

설치가 성공하면 다음과 유사한 화면이 나타납니다:

Ubuntu 22.04 : Tomcat 10 설치 방법, 예제, 명령어 1

 

 

Tomcat 웹 애플리케이션 매니저는 http://<your_domain_or_IP_address>:8080/manager/html에서 사용할 수 있습니다.

Ubuntu 22.04 : Tomcat 10 설치 방법, 예제, 명령어 2

 

  

결론

Ubuntu 22.04 Tomcat 10.0을 설치하고 Tomcat 관리 인터페이스에 액세스하는 방법을 보여드렸습니다.

Apache Tomcat에 대한 자세한 내용은 공식 문서 페이지를 참조하십시오.

반응형