SW/리눅스

Ubuntu 18.04 : Tomcat 9 설치하는 방법, 예제, 명령어

얇은생각 2021. 1. 2. 07:30
반응형

Apache Tomcat은 Java Servlet, JavaServer Pages, Java Expression Language 및 Java WebSocket 기술의 오픈 소스 구현입니다. 이것은 오늘날 세계에서 가장 널리 채택된 애플리케이션 및 웹 서버 중 하나입니다. Tomcat은 사용이 간편하고 강력한 애드온 에코시스템을 갖추고 있습니다.

이 자습서에서는 Ubuntu 18.04에 Tomcat 9를 설치하고 구성하는 방법을 설명합니다. Ubuntu 16.04 및 Linux Mint 및 Firmary OS를 비롯한 모든 Ubuntu 기반 배포에도 동일한 지침이 적용됩니다.

 

 

 

필수 구성 요소

Ubuntu 시스템에 패키지를 설치하려면 sudo 권한을 가진 사용자로 로그인해야 합니다.

 

 

 

1단계: JDK 설치

Tomcat을(를) 설치하려면 Java를 설치해야 합니다. Ubuntu 18.04에 기본 Java 개발 및 런타임인 OpenJDK 를 설치합니다.

자바 설치는 매우 간단합니다. 먼저 패키지 인덱스를 업데이트합니다.

sudo apt update

 

 

다음을 실행하여 OpenJDK 패키지를 설치합니다.

sudo apt install default-jdk

 

 

 

2단계: Tomcat 사용자 생성

보안을 위해 Tomcat은 루트 사용자 아래에서 실행되지 않아야 합니다. Tomcat 서비스를 실행할 홈 디렉토리 /opt/tomcat을 사용하여 새 시스템 사용자 및 그룹을 만듭니다.

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

 

 

 

3단계: Tomcat 설치

우리는 Tomcat 9 다운로드 페이지에서 Tomcat 9의 최신 바이너리 릴리즈를 다운로드 할 것입니다.

작성 당시 최신 버전은 9.0.27입니다. 다음 단계를 계속하기 전에 다운로드 페이지에서 새 버전을 확인해야 합니다. 새 버전이 있는 경우 이항 분포 섹션 아래에 있는 Core tar.gz 파일에 링크를 복사합니다. 

먼저 다음 wget 명령을 사용하여 /tmp 디렉토리의 Tomcat 아카이브를 다운로드합니다.

wget http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz -P /tmp

 

 

다운로드가 완료되면 Tomcat 아카이브를 추출하여 /opt/tomcat 디렉토리로 이동합니다.

sudo tar xf /tmp/apache-tomcat-9*.tar.gz -C /opt/tomcat

 

 

Tomcat 버전 및 업데이트를 더 잘 제어하려면 Tomcat 설치 디렉토리를 가리키는 최신이라는 심볼 링크를 만듭니다.

sudo ln -s /opt/tomcat/apache-tomcat-9.0.27 /opt/tomcat/latest

 

 

나중에 Tomcat 인스턴스를 업그레이드하려면 최신 버전의 포장을 풀고 최신 버전을 가리키도록 symlink를 변경하면 됩니다.

이전 섹션에서 언급한 바와 같이 Tomcat은 Tomcat 사용자 아래에서 실행됩니다. 이 사용자는 Tomcat 설치 디렉토리에 대한 액세스 권한이 있어야 합니다.

다음 명령은 디렉토리 소유권을 사용자 및 그룹 Tomcat으로 변경합니다.

sudo chown -RH tomcat: /opt/tomcat/latest

 

 

bin 디렉토리 내의 스크립트에는 실행 플래그가 있어야 합니다.

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

 

 

 

4단계: systemd Unit File(시스템d 장치 파일) 생성

Tomcat을 서비스로 실행하려면 새 장치 파일을 만들어야 합니다.

텍스트 편집기를 열고 Tomcat이라는 파일을 만듭니다./etc/systemd/system/에서 서비스를 제공합니다.

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

 

 

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

# /etc/systemd/system/tomcat.service

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

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/default-java"
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 설치 경로가 다른 경우 홈입니다.

파일을 저장한 후 닫고 systemd에 새 장치 파일을 생성했음을 알립니다.

sudo systemctl daemon-reload

 

 

다음을 실행하여 Tomcat 서비스를 시작합니다.

sudo systemctl start tomcat

 

 

다음 명령을 사용하여 서비스 상태를 확인합니다.

sudo systemctl status tomcat

# * tomcat.service - Tomcat 9 servlet container
#    Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
#    Active: active (running) since Wed 2018-09-05 15:45:28 PDT; 20s ago
#   Process: 1582 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
#  Main PID: 1604 (java)
#     Tasks: 47 (limit: 2319)
#    CGroup: /system.slice/tomcat.service

 

 

오류가 없는 경우 부팅 시 Tomcat 서비스를 자동으로 시작할 수 있습니다.

sudo systemctl enable tomcat

 

 

 

5단계: 방화벽 조정

서버가 방화벽에 의해 보호되고 로컬 네트워크 외부에서 Tomcat에 액세스하려면 포트 8080을 열어야 합니다.

포트 8080에서 트래픽을 허용하려면 다음 명령을 입력합니다.

sudo ufw allow 8080/tcp

 

 

일반적으로 프로덕션 환경에서 Tomcat 애플리케이션을 실행할 때 로드 밸런싱 장치 또는 역방향 프록시를 사용합니다. 포트 8080에 대한 액세스를 내부 네트워크로만 제한하는 것이 좋습니다.

 

 

 

6단계: Tomcat 웹 관리 인터페이스 구성

이제 Tomcat이 설치되어 실행 중이므로 다음 단계는 웹 관리 인터페이스에 액세스할 수 있는 사용자를 생성하는 것입니다.

Tomcat 사용자 및 역할은 Tomcat-users.xml 파일에 정의되어 있습니다. 이 파일은 사용자 또는 역할을 구성하는 방법을 설명하는 설명과 예를 포함하는 템플릿입니다.

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

 

 

Tomcat 웹 인터페이스(manager-gui 및 admin-gui)에 대한 액세스 권한을 가진 새 사용자를 추가하려면 아래와 같이 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에서 웹 인터페이스에 액세스할 수 있으려면 이러한 제한을 제거해야 합니다. 이는 다양한 보안 영향을 미칠 수 있으며 프로덕션 시스템에는 권장되지 않습니다.

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

Manager 앱에서 다음 파일을 엽니다.

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가 45.45.45.45인 경우 다음과 같이 변경할 수 있습니다.

# 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|45.45.45.45" />
</Context>

 

 

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

변경 내용을 적용하려면 Tomcat 구성 파일을 편집할 때마다 Tomcat 서비스를 다시 시작해야 합니다.

sudo systemctl restart tomcat

 

 

 

6단계: Tomcat 설치 테스트

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

설치가 성공적이라고 가정하면 다음과 유사한 화면이 나타납니다.

Ubuntu 18.04 : Tomcat 9 설치하는 방법, 예제, 명령어 1

 

 

 

Tomcat 웹 응용 프로그램 관리자 대시보드는 http://<your_domain_or_IP_address>:8080/manager/html입니다. 여기서 애플리케이션을 배포, 배포 취소, 시작, 중지 및 다시 로드할 수 있습니다.

6단계에서 작성한 사용자와 로그인할 수 있습니다.

Ubuntu 18.04 : Tomcat 9 설치하는 방법, 예제, 명령어 2

 

 

Tomcat 가상 호스트 관리자 대시보드는 http://<your_domain_or_IP_address>:8080/host-manager/html입니다. 여기서 Tomcat 가상 호스트를 생성, 삭제 및 관리할 수 있습니다.

Ubuntu 18.04 : Tomcat 9 설치하는 방법, 예제, 명령어 3

 

반응형