Apache Tomcat은 Java Servlet, JavaServer Pages, Java Expression Language 및 Java WebSocket 기술의 오픈 소스 구현체입니다. 오늘날 세계에서 가장 널리 채택된 응용프로그램과 웹 서버 중 하나입니다. Tomcat은 사용이 간편하고 강력한 애드온 에코시스템을 갖추고 있습니다.
이번 포스팅에서는 Ubuntu 18.04에 Tomcat 8.5를 설치하는 방법을 보여줍니다. Ubuntu 16.04 및 Linux Mint 및 Firmary OS를 비롯한 모든 Ubuntu 기반 배포에도 동일한 지침이 적용됩니다.
필수 구성 요소
이 튜토리얼을 계속하기 전에 sudo 권한을 가진 사용자로 로그인했는지 확인합니다.
OpenJDK 설치
OpenJDK, Java 플랫폼의 오픈 소스 구현은 Ubuntu 18.04의 기본 Java 개발 및 런타임입니다.
OpenJDK 패키지 설치는 매우 간단합니다.
sudo apt install default-jdk
Tomcat 사용자를 생성
Tomcat 서비스를 실행할 홈 디렉토리 /opt/tomcat을 사용하여 새 시스템 사용자 및 그룹을 생성합니다.
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Tomcat 다운로드
wget 및 unzip을 사용하여 Tomcat 아카이브를 다운로드하고 압축을 풉니다. 시스템에 압축을 풀고 wget을 설치하지 않은 경우 다음을 사용하여 패키지를 설치합니다.
sudo apt install unzip wget
Tomcat 다운로드 페이지에서 최신 버전의 Tomcat 8.5.x를 다운로드합니다. 작성 당시 최신 버전은 8.5.37입니다. 다음 단계를 계속하기 전에 다운로드 페이지에서 새 버전을 확인해야 합니다.
/tmp 디렉토리로 변경하고 다음 wget 명령을 사용하여 zip 파일을 다운로드합니다.
cd /tmp
wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.zip
다운로드가 완료되면 파일의 압축을 풀고 /opt/tomcat 디렉토리로 이동합니다.
unzip apache-tomcat-*.zip
sudo mkdir -p /opt/tomcat
sudo mv apache-tomcat-8.5.37 /opt/tomcat/
버전 및 업데이트를 보다 효과적으로 제어하기 위해 Tomcat 설치 디렉토리를 가리키는 심볼 링크를 최신 버전으로 만듭니다.
sudo ln -s /opt/tomcat/apache-tomcat-8.5.37 /opt/tomcat/latest
나중에 Tomcat 설치를 업그레이드하려면 최신 버전의 포장을 풀고 최신 버전을 가리키도록 symlink를 변경하면 됩니다.
이전에 설정한 Tomcat 사용자가 Tomcat 디렉토리에 액세스할 수 있어야 하므로 디렉토리 소유권을 사용자 및 그룹 Tomcat으로 변경합니다.
sudo chown -R tomcat: /opt/tomcat
다음 chmod 명령을 실행하여 bin 디렉토리 내의 스크립트를 실행 가능하게 만듭니다.
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
systemd 단위 파일 생성
Tomcat을 서비스로 실행하기 위해 새로운 Tomcat을 만들 것입니다. /etc/systemd/system/ 디렉토리의 서비스 단위 파일에 다음 내용이 포함됩니다.
# /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 8.5 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
다음 명령을 사용하여 서비스 상태를 확인할 수 있습니다.
sudo systemctl status tomcat
● tomcat.service - Tomcat 8.5 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2018-05-05 11:04:40 UTC; 5s ago
Process: 13478 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 13499 (java)
Tasks: 45 (limit: 507)
CGroup: /system.slice/tomcat.service
└─13499 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.
오류가 없는 경우 부팅 시 Tomcat 서비스를 자동으로 시작할 수 있습니다.
sudo systemctl enable tomcat
방화벽을 조정
서버가 방화벽에 의해 보호되고 로컬 네트워크 외부에서 Tomcat 인터페이스에 액세스하려면 포트 8080을 열어야 합니다.
포트 8080에서 트래픽을 허용하려면 다음 명령을 입력합니다.
sudo ufw allow 8080/tcp
운영 환경에서 Tomcat 애플리케이션을 실행할 때는 로드 밸런싱 장치 또는 역방향 프록시가 있을 가능성이 가장 높으며, 포트 8080에 대한 액세스를 내부 네트워크로만 제한하는 것이 가장 좋습니다.
Tomcat 웹 관리 인터페이스 구성
이제 Tomcat이 Ubuntu 서버에 설치되었으므로 다음 단계는 웹 관리 인터페이스에 액세스할 수 있는 사용자를 생성하는 것입니다.
Tomcat 사용자 및 해당 역할은 Tomcat-users.xml 파일에 정의되어 있습니다.
파일을 열면 파일 구성 방법을 설명하는 설명과 예제로 채워집니다.
sudo vim /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가 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://<your_domain_or_IP_address>:8080를 입력합니다.
설치가 성공적이라고 가정하면 다음과 유사한 화면이 나타납니다.
Tomcat 웹 응용 프로그램 관리자 대시보드는 http://<your_domain_or_IP_address>:8080/manager/html에서 사용할 수 있습니다. 여기서 애플리케이션을 배포, 배포 취소, 시작, 중지 및 다시 로드할 수 있습니다.
Tomcat 가상 호스트 관리자 대시보드는 http://<your_domain_or_IP_address>:8080/host-manager/html에서 사용할 수 있습니다. 여기서 Tomcat 가상 호스트를 생성, 삭제 및 관리할 수 있습니다.
정리
Ubuntu 18.04 시스템에 Tomcat 8.5를 설치했습니다. 이제 Apache Tomcat 8 공식 설명서를 방문하여 Apache Tomcat 기능에 대해 자세히 알아볼 수 있습니다.
'SW > 리눅스' 카테고리의 다른 글
CentOS 7 : Node.js, npm 설치 방법, 예제, 명령어 (0) | 2020.10.14 |
---|---|
Ubuntu : Sudo 권한 사용자 만드는 방법, 예제, 명령어 (1) | 2020.10.13 |
Ubuntu 18.04 : Nginx에 Let's Encrypt로 SSL/HTTPS 적용 방법, 예제, 명령어 (3) | 2020.10.10 |
Ubuntu 18.04 : Nginx 서버 블락 설정 방법, 예제, 명령어 (0) | 2020.10.09 |
Ubuntu 18.04 : Nginx 설치 방법, 예제, 명령어 (0) | 2020.10.08 |