SW/리눅스

Debian 9 : Tomcat 9 설치 방법, 예제, 명령어

얇은생각 2021. 3. 28. 07:30
반응형

Apache Tomcat은 Java 서블릿, Java Server Pages, Java Expression Language 및 Java WebSocket 기술을 지원하는 오픈 소스 애플리케이션 서버입니다. 현재 세계에서 가장 널리 사용되는 애플리케이션 및 웹 서버 중 하나입니다.

이 튜토리얼에서는 Devian 9에 Apache Tomcat 9.0을 설치하고 Tomcat 웹 관리 인터페이스를 구성하는 방법을 보여 줍니다.

 

 

 

전제조건

이 튜토리얼을 계속하기 전에 sudo 권한을 가진 사용자로 로그인했는지 확인하십시오.

wget을 사용하여 Tomcat zip 파일을 다운로드할 것입니다. 시스템에 wget이 설치되어 있지 않은 경우 다음을 입력하여 설치할 수 있습니다.

sudo apt install wget

 

 

Tomcat 9.0에는 Java SE 8 이상이 필요합니다. Debian 9 리포지토리에서 기본 OpenJDK 패키지를 설치하려면 다음 명령을 실행합니다.

sudo apt install default-jdk

 

 

 

Tomcat 사용자를 생성

Tomcat을 루트 사용자로 실행하는 것은 보안상의 위험이 있으므로 권장하지 않습니다.

다음 명령을 실행하여 /opt/tomcat의 홈 디렉토리로 새 시스템 사용자 및 그룹을 생성합니다.

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

 

 

이 사용자는 Tomcat 서비스를 실행하는 데 사용됩니다.

 

 

Tomcat 다운로드

Tomcat 다운로드 페이지에서 최신 버전의 Tomcat 9.0.x를 다운로드할 것입니다.

작성 시 최신 Tomcat 버전은 9.0.27입니다. 다음 단계를 계속하기 전에 Tomcat 9 다운로드 페이지를 확인하여 사용 가능한 최신 버전이 있는지 확인해야 합니다.

/tmp 디렉토리로 변경하고 wget을 사용하여 zip 파일을 다운로드합니다.

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

 

 

다운로드가 완료되면 tar 파일의 압축을 풉니다.

tar -xf apache-tomcat-9.0.27.tar.gz

 

 

Tomcat 소스 파일을 /opt/tomcat 디렉토리로 이동합니다.

sudo mv apache-tomcat-9.0.27 /opt/tomcat/

 

 

Tomcat 9는 자주 업데이트됩니다. 버전 및 업데이트를 더 많이 제어하려면 Tomcat 설치 디렉토리를 가리키는 최신이라는 심볼 링크를 만드십시오.

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

 

 

나중에 Tomcat 버전을 업그레이드할 때 최신 버전의 압축을 풀고 심볼 링크를 최신 버전을 가리키도록 변경할 수 있습니다.

사용자가 Tomcat 설치에 액세스할 수 있도록 /opt/tomcat 디렉토리의 소유권을 사용자 및 그룹 Tomcat으로 변경합니다.

sudo chown -R tomcat: /opt/tomcat

 

 

또한 bin 디렉토리 내부의 스크립트를 실행할 수 있도록 합니다.

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

 

 

 

systemd unit 파일 생성

새 Tomcat을 만듭니다. /etc/systemd/system/ 디렉토리의 서비스 단위 파일에 다음과 같은 내용이 포함됩니다.

# /etc/systemd/system/tomcat.service

[Unit]
Description=Tomcat 9.0 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"

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

 

 

다음을 입력하여 Tomcat 서비스 상태를 확인합니다.

sudo systemctl daemon-reload
sudo systemctl start tomcat

# ● tomcat.service - Tomcat 9 servlet container
#    Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
#    Active: active (running) since Thu 2018-12-01 20:47:50 UTC; 4s ago
#   Process: 1759 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
#  Main PID: 1767 (java)
#    CGroup: /system.slice/tomcat.service

 

 

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

sudo systemctl enable tomcat

 

 

 

Tomcat을 다른 systemd unit 서비스와 동일하게 시작, 중지 및 재시작할 수 있습니다.

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

 

 

 

 

방화벽 조정

데비안 시스템에서 방화벽이 실행 중이고 로컬 네트워크 외부에서 Tomcat 인터페이스에 액세스하려면 포트 8080을 열어야 합니다.

sudo ufw allow 8080/tcp

 

 

 

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

 

 

 

Tomcat 웹 관리 인터페이스 구성

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

Tomcat 사용자와 해당 역할은 Tomcat-users.xml 파일에 정의되어 있습니다.

파일을 열면 파일 구성 방법을 설명하는 설명과 예제로 가득 차 있습니다.

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

 

 

 

아래와 같이 Tomcat-users.xml 파일의 Tomcat 웹 인터페이스(manager-gui 및 admin-gui)에 액세스할 수 있는 새 사용자를 정의합니다. 사용자 이름과 암호를 보다 안전한 것으로 변경해야 합니다.

# /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 웹 관리 인터페이스는 로컬 호스트에서만 액세스를 허용합니다. 보안상 위험하므로 권장되지 않는 원격 IP 또는 다른 위치에서 웹 인터페이스에 액세스하려는 경우 다음 파일을 열고 다음과 같이 변경할 수 있습니다.

어디에서나 웹 인터페이스에 액세스해야 하는 경우 다음 파일을 열고 노란색으로 강조 표시된 행을 주석 처리하거나 제거합니다.

# /opt/tomcat/latest/webapps/manager/META-INF/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>

 

 

# /opt/tomcat/latest/webapps/host-manager/META-INF/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가 32.32.32.32이고 해당 IP에서만 액세스를 허용하려고 한다고 가정해 보겠습니다.

# /opt/tomcat/latest/webapps/manager/META-INF/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|32.32.32.32" />
</Context>

 

 

# /opt/tomcat/latest/webapps/host-manager/META-INF/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|32.32.32.32" />
</Context>

 

 

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

변경 내용을 적용하려면 Tomcat 서비스를 다시 시작합니다.

sudo systemctl restart tomcat

 

 

 

설치 테스트

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

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

Debian 9 : Tomcat 9 설치 방법, 예제, 명령어 1

 

 

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

Debian 9 : Tomcat 9 설치 방법, 예제, 명령어 2

 

 

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

Debian 9 : Tomcat 9 설치 방법, 예제, 명령어 3

 

반응형