Apache Tomcat은 Java 서블릿, Java서버 페이지, Java Expression Language 및 Java WebSocket 기술을 구현하는 오픈 소스 JAVA 기반 애플리케이션 서버입니다. 오늘날 세계에서 가장 널리 사용되는 애플리케이션 및 웹 서버 중 하나입니다.
Debian 10 Buster에 Apache Tomcat 9.0을 설치하고 Tomcat 웹 관리 인터페이스를 구성하는 방법에 대해 설명합니다.
필수 조건
이 지침에서는 사용자가 루트 또는 sudo 권한을 가진 사용자로 로그인했다고 가정합니다.
OpenJDK을 설치
Tomcat 9.0을 사용하려면 Java SE 8 이상이 서버에 설치되어 있어야 합니다.
다음 명령을 실행하여 OpenJDK 패키지를 설치합니다.
sudo apt install default-jdk
Tomcat 사용자 생성
Tomcat을 루트 사용자로 실행하는 것은 보안 위험이 있으므로 권장하지 않습니다. Tomcat 서비스를 실행하는 데 사용할 새 사용자를 만듭니다.
다음 명령을 실행하면 홈 디렉토리가 /opt/tomcat인 새 시스템 사용자와 그룹이 생성됩니다.
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Tomcat을 다운로드
기록할 때 최신 Tomcat 버전은 9.0.27입니다. 다음 단계를 계속하기 전에 Tomcat 9 다운로드 페이지를 확인하여 최신 버전을 사용할 수 있는지 확인해야 합니다.
/tmp 디렉터리로 변경하고 최신 Tomcat 바이너리 릴리스를 다운로드합니다.
cd /tmp
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
다운로드가 완료되면 압축된 보관 파일의 압축을 풉니다.
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을 업그레이드할 때 새 버전의 압축을 풀고 최신 버전을 가리키도록 심볼 링크를 변경하면 됩니다.
/opt/tomcat 디렉토리의 소유권을 사용자 및 그룹 Tomcat으로 변경하여 사용자가 설치 디렉토리에 액세스할 수 있도록 합니다.
sudo chown -R tomcat: /opt/tomcat
bin 디렉토리 내에서 스크립트를 실행합니다.
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
시스템D 단위 파일 생성
텍스트 편집기를 열고 Tomcat이라는 새 파일을 만듭니다.다음 내용을 포함한 서비스입니다.
# /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
systemd에 새 장치 파일이 있음을 알리고 다음을 입력하여 Tomcat 서비스를 시작합니다.
sudo systemctl daemon-reload
sudo systemctl start tomcat
다음을 입력하여 Tomcat 서비스의 상태를 확인합니다.
sudo systemctl status tomcat
# ● tomcat.service - Tomcat 9.0 servlet container
# Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset:
# Active: active (running) since Sat 2019-11-09 13:53:51 PST; 5s ago
# Process: 5752 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status
# Main PID: 5759 (java)
오류가 없으면 부팅 시 Tomcat 서비스를 자동으로 시작하도록 설정합니다.
Tomcat은 다른 systemd 장치 서비스와 마찬가지로 시작, 중지 및 다시 시작할 수 있습니다.
sudo systemctl enable tomcat
sudo systemctl start tomcat
sudo systemctl stop tomcat
sudo systemctl restart tomcat
방화벽을 조정
Debian 시스템에서 실행 중인 방화벽이 있는 경우 로컬 네트워크 외부에서 Tomcat 인터페이스에 액세스하려면 포트 8080을 열어야 합니다.
sudo ufw allow 8080/tcp
프로덕션 환경에서 Tomcat 애플리케이션을 실행하는 경우 로드 밸런서 또는 역방향 프록시가 있을 가능성이 높으며, 내부 네트워크에서만 포트 8080에 대한 액세스를 제한하는 것이 좋습니다.
Tomcat 웹 관리 인터페이스를 구성
이제 Tomcat이 설치되었으므로 다음 단계는 웹 관리 인터페이스에 액세스할 수 있는 사용자를 만드는 것입니다.
Tomcat 사용자와 해당 역할은 Tomcat-users.xml 파일에 정의됩니다.
파일을 열면 파일 구성 방법을 설명하는 설명과 예로 채워져 있음을 알 수 있습니다.
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
아래와 같이 Tomcat-users.xml 파일에 새 사용자를 정의합니다. 사용자는 Tomcat 웹 인터페이스(관리자-귀 및 관리자-귀)에 액세스할 수 있습니다.
사용자 이름과 암호를 보다 안전한 것으로 변경해야 합니다.
# /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이고 해당 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://<your_domain_or_IP_address>:8080를 입력합니다.
설치가 성공하면 다음과 유사한 화면이 나타납니다.
Tomcat 웹 애플리케이션 관리자 대시보드는 http://<your_domain_or_에서 사용할 수 있습니다.IP_address>:8080/manager/html입니다. 여기서 응용 프로그램을 배포, 배포 취소, 시작, 중지 및 다시 로드할 수 있습니다.
Tomcat 가상 호스트 관리자 대시보드는 http://<your_domain_or_에서 사용할 수 있습니다.IP_address>:8080/호스트-관리자/html입니다. 여기에서 Tomcat 가상 호스트를 생성, 삭제 및 관리할 수 있습니다.
Debian 10 시스템에 Tomcat 9.0을 성공적으로 설치했습니다. 이제 공식 Apache Tomcat 9.0 설명서를 방문하여 Apache Tomcat 기능에 대해 자세히 알아볼 수 있습니다.
'SW > 리눅스' 카테고리의 다른 글
Linux : ISO 파일 마운트 방법, 예제, 명령어 (0) | 2022.04.18 |
---|---|
Linux : CentOS 8 : 방화벽 구성, 관리 방법, 예제, 명령어 (0) | 2022.04.17 |
Linux : CentOS 8 : Hostname 변경 방법, 예제, 명령어 (0) | 2022.04.15 |
Linux : Stat 명령어, 사용 방법, 예제 (0) | 2022.04.14 |
Linux : Ubuntu 18.04 : Python 3.8 설치 방법, 예제, 명령어 (0) | 2022.04.13 |