Tomcat은 Java 서블릿, Java Server Pages, Java Expression Language 및 Java WebSocket 기술의 오픈 소스 구현입니다.
이 튜토리얼에서는 CentOS 7에 Tomcat 9.0을 설치하는 데 필요한 단계를 다룹니다.
전제조건
로그인하는 사용자는 패키지를 설치하려면 sudo 권한을 가지고 있어야 합니다.
OpenJDK 설치
Tomcat 9에는 Java SE 8 이상이 필요합니다. CentOS 7의 기본 Java 개발 및 런타임인 Java Platform의 오픈 소스 구현인 OpenJDK를 설치할 것입니다.
다음 명령을 입력하여 Java를 설치합니다.
sudo yum install java-1.8.0-openjdk-devel
Tomcat 시스템 사용자 생성
Tomcat을 루트 사용자로 실행하는 것은 보안상의 위험이며 모범 사례로 간주되지 않습니다.
Tomcat 서비스를 실행할 홈 디렉토리 /opt/tomcat을 사용하여 새 시스템 사용자와 그룹을 생성합니다.
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Tomcat 다운로드
Tomcat 다운로드 페이지에서 최신 버전의 Tomcat 9.0.x를 다운로드할 것입니다.
작성 시 최신 Tomcat 버전은 9.0.27입니다. 다음 단계를 계속하기 전에 Tomcat 9 다운로드 페이지를 확인하여 사용 가능한 최신 버전이 있는지 확인해야 합니다.
다음 wget 명령을 사용하여 /tmp 디렉토리로 이동하고 Tomcat 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 설치 디렉토리에 액세스할 수 있어야 합니다.
다음 명령을 실행하여 디렉토리 소유권을 사용자 및 그룹 Tomcat으로 변경합니다.
sudo chown -R tomcat: /opt/tomcat
다음 chmod 명령을 실행하여 bin 디렉토리 내의 스크립트를 실행할 수 있도록 합니다.
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
systemd unit 파일 생성
Tomcat을 서비스로 실행하도록 하려면 텍스트 편집기를 열고 Tomcat을 만듭니다./etc/systemd/system/directory의 서비스 단위 파일입니다.
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/jre"
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에 알립니다.
sudo systemctl daemon-reload
Tomcat 서비스를 활성화하고 시작합니다.
sudo systemctl enable tomcat
sudo systemctl start tomcat
다음 명령을 사용하여 서비스 상태를 확인하십시오.
sudo systemctl status tomcat
# ● tomcat.service - Tomcat 9 servlet container
# Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
# Active: active (running) since Thu 2018-11-15 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 인터페이스에 액세스하려면 포트 8080을 열어야 합니다.
다음 명령을 사용하여 필요한 포트를 엽니다.
sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
대부분의 경우 운영 환경에서 Tomcat을 실행할 때 로드 밸런서 또는 역방향 프록시를 사용합니다. 포트 8080에 대한 액세스를 내부 네트워크에만 허용하는 것이 좋습니다.
Tomcat 웹 관리 인터페이스 구성
이 때 Tomcat이 설치되어 포트 8080의 웹 브라우저로 액세스할 수 있지만 아직 사용자를 만들지 않았기 때문에 웹 관리 인터페이스에 액세스할 수 없습니다.
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 웹 관리 인터페이스는 로컬 호스트에서만 액세스를 허용하도록 구성되어 있습니다. 보안 위험이 있으므로 권장되지 않는 원격 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가 41.41.41이고 해당 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|41.41.41.41" />
</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|41.41.41.41" />
</Context>
허용된 IP 주소 목록은 세로 막대 |로 구분된 목록입니다. 단일 IP 주소를 추가하거나 정규식을 사용할 수 있습니다
변경 내용을 적용하려면 Tomcat 서비스를 다시 시작합니다.
sudo systemctl restart tomcat
설치 테스트
브라우저를 열고 다음을 입력합니다: http://<IP_address>:8080
설치가 완료되면 다음과 유사한 화면이 나타납니다.
Tomcat 웹 애플리케이션 관리자 대시보드는 http://<IP_address>:8080/manager/html에서 사용할 수 있습니다. 여기서 응용 프로그램을 배포, 배포 취소, 시작, 중지 및 다시 로드할 수 있습니다.
Tomcat 가상 호스트 관리자 대시보드는 http://<IP_address>:8080/host-manager/html입니다. 여기서 Tomcat 가상 호스트를 생성, 삭제 및 관리할 수 있습니다.
'SW > 리눅스' 카테고리의 다른 글
LINUX : SFTP Command로 파일 전송하는 방법, 예제, 명령어 (0) | 2021.03.14 |
---|---|
Ubuntu 18.04 : Nagios 설치, 구성 방법, 예제, 명령어 (0) | 2021.03.13 |
Linux : Tail 명령어, 사용 방법, 예제 (0) | 2021.03.11 |
Ubuntu 18.04 : Atom Text Editor 설치 방법, 예제, 명령어 (0) | 2021.03.10 |
Ubuntu 18.04 : phpMyAdmin with Nginx 설치 방법, 예제, 명령어 (0) | 2021.03.09 |