만약 Java 서버 페이지 코딩이나 Java 서블릿을 포함한 웹 페이지를 실행하려면 Apache Tomcat을 사용할 수 있습니다. 이는 Apache Software Foundation에서 출시된 오픈 소스 웹 서버 및 서블릿 컨테이너입니다.
Tomcat은 독립형 제품으로 사용하거나 자체 웹 서버와 함께 사용하거나 Apache나 IIS와 같은 다른 웹 서버와 결합하여 사용할 수 있습니다. 가장 최근 버전의 Tomcat은 9.0.14이며 Tomcat 8 및 8.5를 기반으로 구축되었으며 Servlet 4.0, JSP 2.2를 구현했습니다.
관련 기사: CentOS/RHEL에 Apache Tomcat 9 설치하는 방법
새 버전에서 다음과 같은 개선 사항이 있습니다:
- HTTP/2 지원 추가.
- JSSE 커넥터에 TLS 지원으로 OpenSSL 사용 지원 추가.
- TLS 가상 호스트(SNI) 지원 추가.
이 튜토리얼에서는 Ubuntu 18.10 및 이전 버전의 Ubuntu에 Apache Tomcat 9를 설치하는 방법을 안내하겠습니다.
단계 1: Java 설치
Java 웹 애플리케이션을 실행하려면 Tomcat이 서버에 설치된 Java를 필요로 합니다. 이 요구 사항을 충족하기 위해 아래와 같이 OpenJDK를 설치하겠습니다.
$ sudo apt update $ sudo apt install default-jdk
단계 2: Tomcat 사용자 생성
보안상의 이유로 Tomcat은 루트가 아닌 권한이 없는 사용자와 함께 실행되어야 합니다. 따라서 서비스를 실행할 tomcat 사용자 및 그룹을 생성할 것입니다. 먼저 tomcat 그룹을 만들어 보겠습니다:
$ sudo groupadd tomcat
다음으로 tomcat 그룹의 구성원이 될 tomcat 사용자를 생성할 것입니다. 이 사용자의 홈 위치는 /opt/tomcat이며, 이곳에 Tomcat을 설치할 예정입니다. 셸은 /bin/false로 설정될 것입니다:
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
이제 다음 단계로 진행할 준비가 되었습니다. Tomcat을 다운로드하겠습니다.
단계 3: Apache Tomcat 설치
최신 패키지를 다운로드하려면 Tomcat 다운로드 페이지로 이동하여 최신 버전을 다운로드하십시오.
본 자습서를 작성하는 시점에서 최신 버전의 Tomcat은 9.0.14입니다. 해당 버전을 다운로드하려면 현재 디렉토리를 다른 곳으로 변경하십시오. 예를 들어 /tmp를 사용할 수 있습니다:
# cd /tmp
그런 다음 wget 명령어를 사용하여 Tomcat 아카이브를 다운로드하십시오:
$ wget http://apache.cbox.biz/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz $ wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz.sha512
파일의 sha512 해시 값을 확인하려면 다음 명령을 실행할 수 있습니다:
$ sha512sum apache-tomcat-9.0.14.tar.gz $ cat apache-tomcat-9.0.14.tar.gz.sha512
두 파일의 결과 값(해시)은 동일해야 합니다.
앞서 언급했듯이, Tomcat을 /opt/tomcat에 설치할 것입니다. 해당 디렉토리를 생성해야 합니다:
$ sudo mkdir /opt/tomcat
이제 새 디렉토리에 다운로드한 패키지를 압축 해제할 수 있습니다.
$ sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1
이제 여기서 폴더 소유권과 권한을 업데이트할
# cd /opt/tomcat
/opt/tomcat의 그룹 소유자를 tomcat로 설정하십시오:
$ sudo chgrp -R tomcat /opt/tomcat
다음으로 tomcat 그룹의 conf 디렉토리에 대한 읽기 액세스를 업데이트하고 디렉토리에 실행 권한을 설정하겠습니다:
$ sudo chmod -R g+r conf $ sudo chmod g+x conf
다음으로 webapps, work, temp 및 logs 디렉토리의 소유자를 tomcat 사용자로 설정하겠습니다:
$ sudo chown -R tomcat webapps/ work/ temp/ logs/
이제 적절한 권한과 소유권이 설정되었으며 Tomcat 프로세스를 관리하는 데 도움이 되는 systemd 시작 파일을 생성할 준비가 되었습니다.
단계 4: Tomcat을 위한 SystemD 서비스 파일 생성
Tomcat을 서비스로 실행하려면 프로세스를 쉽게 관리할 수 있는 파일이 필요합니다. 이를 위해 systemd 서비스 파일을 생성하겠습니다. Tomcat은 시스템에서 Java의 위치를 알아야 합니다.
해당 위치를 찾으려면 다음 명령을 사용하십시오:
$ sudo update-java-alternatives -l
그 명령의 출력은 JAVA_HOME의 위치를 보여줍니다.

이제 해당 정보를 사용하여 Tomcat 서비스 파일을 생성할 준비가 되었습니다.
$ sudo vim /etc/systemd/system/tomcat.service
아래 코드를 파일에 붙여넣으십시오:
[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh User=tomcat Group=tomcat UMask=0007 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
JAVA_HOME을 시스템에 맞게 설정하십시오. 준비가 되었을 때 파일을 저장하고 닫으십시오. 이제 아래 명령을 사용하여 systemd 데몬을 다시로드하여 새 서비스 파일을 찾을 수 있도록 하십시오:
$ sudo systemctl daemon-reload
그런 다음 Tomcat 서비스를 시작하십시오:
$ sudo systemctl start tomcat
서비스 상태를 확인할 수 있습니다.
$ sudo systemctl status tomcat

이제 시스템의 IP 주소 뒤에 서비스 기본 포트 8080를 사용하여 브라우저에서 Tomcat을 테스트할 수 있습니다.
http://ip-address:8080
아래 이미지에 표시된 것과 유사한 결과를 보게 되어야 합니다:

위의 출력을 보지 못하는 경우, 방화벽에서 포트 8080을 허용해야 할 수도 있습니다.
$ sudo ufw allow 8080
Tomcat을 시스템 부팅 시 시작하려면 실행하세요:
$ systemctl enable tomcat
5단계: Apache Tomcat 구성
Tomcat에는 기본적으로 설치된 웹 관리자 앱이 있습니다. 이를 사용하려면 tomcat-users.xml 파일 내에서 인증을 설정해야 합니다. 즐겨 사용하는 텍스트 편집기로 해당 파일을 열고 편집하세요:
$ sudo vim /opt/tomcat/conf/tomcat-users.xml
우리는 manager 및 admin 인터페이스에 액세스할 수 있는 사용자를 추가할 것입니다. 이러한 사용자를 구성하려면 <tomcat-users> </tomcat-users>
태그 사이에 다음 줄을 추가하세요:
<user username="Username" password="Password" roles="manager-gui,admin-gui"/>
다음을 변경하세요:
- 사용자 이름 – 인증할 사용자 이름입니다.
- 비밀번호 – 인증에 사용할 비밀번호입니다.

기본적으로 Host Manager 및 Manager에 대한 액세스가 제한되어 있으므로, 이러한 제한을 제거하거나 변경하기를 원할 수 있습니다. 이러한 변경을 만들려면 다음 파일을 로드하세요:
Manager 앱의 경우:
$ sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml
Host manager 앱의 경우:
$ sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml
해당 파일 내에서 IP 제한을 주석 처리하거나 공인 IP 주소를 허용할 수 있습니다. 이 튜토리얼의 목적을 위해 해당 줄에 주석을 처리했습니다:

변경 사항을 적용하려면 톰캣 서비스를 다시 로드하세요:
$ sudo systemctl restart tomcat
이제 관리자 앱을 테스트할 수 있습니다. http://ip주소:8080/manager/에 접속하세요. 사용자 이름과 비밀번호를 요청하면 이전에 구성한 것을 사용하세요. 그 후 보게 될 인터페이스는 다음과 같습니다:

호스트 관리자에 접근하려면 Host manager를 사용하세요. http://ip-address:8080/host-manager/.

가상 호스트 관리자를 사용하여 톰캣 애플리케이션에 대한 가상 호스트를 생성할 수 있습니다.
6단계: 테스트 파일 생성을 통한 Apache Tomcat 테스트
모든 것이 잘 작동하는지 확인하려면 /opt/tomcat/webapps/ROOT/ 디렉토리 내에 테스트 파일을 생성하세요.
이러한 파일을 생성합시다:
$ sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp
해당 파일 내에 다음 코드를 붙여넣으세요:
<html> <head> <title>Tecmint post:TomcatServer</title> </head> <body> <START OF JAVA CODES> <% out.println("Hello World! I am running my first JSP Application"); out.println("<BR>Tecmint is an Awesome online Linux Resource."); %> <END OF JAVA CODES> </body> </html>
파일을 저장하고 보안을 설정하세요.
$ sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp
이제 브라우저에서 http://ip-address:8080/tecmint.jsp를 사용하여 해당 파일을 로드하세요.

다 되었습니다! 아파치 톰캣 서버 설정을 완료하고 첫 번째 Java 코드를 실행했습니다. 이 과정이 당신에게 쉽고 직관적이었기를 바랍니다. 문제가 발생하면 아래 댓글 양식을 통해 문제를 공유해주세요.
Source:
https://www.tecmint.com/install-apache-tomcat-in-ubuntu/