Ubuntu에 Apache Tomcat 설치 방법

만약 Java 서버 페이지 코딩이나 Java 서블릿을 포함한 웹 페이지를 실행하려면 Apache Tomcat을 사용할 수 있습니다. 이는 Apache Software Foundation에서 출시된 오픈 소스 웹 서버 및 서블릿 컨테이너입니다.

Tomcat은 독립형 제품으로 사용하거나 자체 웹 서버와 함께 사용하거나 ApacheIIS와 같은 다른 웹 서버와 결합하여 사용할 수 있습니다. 가장 최근 버전의 Tomcat은 9.0.14이며 Tomcat 88.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 다운로드 페이지로 이동하여 최신 버전을 다운로드하십시오.

본 자습서를 작성하는 시점에서 최신 버전의 Tomcat9.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, templogs 디렉토리의 소유자를 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의 위치를 보여줍니다.

Find 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
Verify Apache Tomcat Status

이제 시스템의 IP 주소 뒤에 서비스 기본 포트 8080를 사용하여 브라우저에서 Tomcat을 테스트할 수 있습니다.

http://ip-address:8080

아래 이미지에 표시된 것과 유사한 결과를 보게 되어야 합니다:

Apache Tomcat Web Page

위의 출력을 보지 못하는 경우, 방화벽에서 포트 8080을 허용해야 할 수도 있습니다.

$ sudo ufw allow 8080

Tomcat을 시스템 부팅 시 시작하려면 실행하세요:

$ systemctl enable tomcat

5단계: Apache Tomcat 구성

Tomcat에는 기본적으로 설치된 웹 관리자 앱이 있습니다. 이를 사용하려면 tomcat-users.xml 파일 내에서 인증을 설정해야 합니다. 즐겨 사용하는 텍스트 편집기로 해당 파일을 열고 편집하세요:

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

우리는 manageradmin 인터페이스에 액세스할 수 있는 사용자를 추가할 것입니다. 이러한 사용자를 구성하려면 <tomcat-users> </tomcat-users> 태그 사이에 다음 줄을 추가하세요:

<user username="Username" password="Password" roles="manager-gui,admin-gui"/>

다음을 변경하세요:

  • 사용자 이름 – 인증할 사용자 이름입니다.
  • 비밀번호 – 인증에 사용할 비밀번호입니다.
Configure Apache Tomcat

기본적으로 Host ManagerManager에 대한 액세스가 제한되어 있으므로, 이러한 제한을 제거하거나 변경하기를 원할 수 있습니다. 이러한 변경을 만들려면 다음 파일을 로드하세요:

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 주소를 허용할 수 있습니다. 이 튜토리얼의 목적을 위해 해당 줄에 주석을 처리했습니다:

Allow Apache Tomcat Access

변경 사항을 적용하려면 톰캣 서비스를 다시 로드하세요:

$ sudo systemctl restart tomcat 


이제 관리자 앱을 테스트할 수 있습니다. http://ip주소:8080/manager/에 접속하세요. 사용자 이름과 비밀번호를 요청하면 이전에 구성한 것을 사용하세요. 그 후 보게 될 인터페이스는 다음과 같습니다:

Access Apache Tomcat Manager

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

Access Apache Tomcat Virtual 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를 사용하여 해당 파일을 로드하세요.

Test Apache Tomcat

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

Source:
https://www.tecmint.com/install-apache-tomcat-in-ubuntu/