Ubuntu 16.04에 Apache Tomcat 8을 설치하는 방법
소개
Apache Tomcat은 Java 애플리케이션을 제공하는 데 사용되는 웹 서버 및 서블릿 컨테이너입니다. Tomcat은 Apache Software Foundation에서 출시한 Java Servlet 및 JavaServer Pages 기술의 오픈 소스 구현입니다. 이 튜토리얼은 Ubuntu 16.04 서버에서 최신 Tomcat 8 릴리스의 기본 설치 및 일부 구성을 다룹니다.
전제 조건
이 가이드를 시작하기 전에 서버에 설정된 sudo
권한이 있는 루트가 아닌 사용자가 있어야 합니다. Ubuntu 16.04 초기 서버 설정 가이드를 완료하여 이를 수행하는 방법을 배울 수 있습니다.
1단계: 자바 설치
Tomcat은 모든 Java 웹 응용 프로그램 코드를 실행할 수 있도록 서버에 Java를 설치해야 합니다. apt-get으로 OpenJDK를 설치하면 해당 요구 사항을 충족할 수 있습니다.
먼저 apt-get 패키지 색인을 업데이트합니다.
- sudo apt-get update
그런 다음 apt-get을 사용하여 Java Development Kit 패키지를 설치합니다.
- sudo apt-get install default-jdk
이제 Java가 설치되었으므로 Tomcat 서비스를 실행하는 데 사용할 tomcat
사용자를 만들 수 있습니다.
2단계: Tomcat 사용자 생성
보안을 위해 Tomcat은 권한이 없는 사용자(즉, 루트가 아님)로 실행해야 합니다. Tomcat 서비스를 실행할 새 사용자 및 그룹을 생성합니다.
먼저 새 tomcat
그룹을 만듭니다.
- sudo groupadd tomcat
다음으로 새 tomcat
사용자를 만듭니다. 우리는 이 사용자를 /opt/tomcat
의 홈 디렉터리(Tomcat을 설치할 위치)와 < code>/bin/false(아무도 계정에 로그인할 수 없도록):
- sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
이제 tomcat
사용자가 설정되었으므로 Tomcat을 다운로드하여 설치해 보겠습니다.
3단계: 톰캣 설치
Tomcat 8을 설치하는 가장 좋은 방법은 최신 바이너리 릴리스를 다운로드한 다음 수동으로 구성하는 것입니다.
Tomcat 8 다운로드 페이지에서 최신 버전의 Tomcat 8을 찾으십시오. 작성 당시 최신 버전은 8.5.5이지만 가능하다면 이후의 안정적인 버전을 사용해야 합니다. Binary Distributions 섹션의 Core 목록에서 "tar.gz\에 대한 링크를 복사합니다.
그런 다음 서버의 /tmp
디렉토리로 변경합니다. 이것은 Tomcat 콘텐츠를 추출한 후 필요하지 않은 Tomcat tarball과 같은 임시 항목을 다운로드하기에 좋은 디렉토리입니다.
- cd /tmp
curl
을 사용하여 Tomcat 웹 사이트에서 복사한 링크를 다운로드합니다.
- curl -O http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz
/opt/tomcat
디렉터리에 Tomcat을 설치합니다. 디렉터리를 만든 다음 다음 명령을 사용하여 아카이브를 추출합니다.
- sudo mkdir /opt/tomcat
- sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1
다음으로 설치에 대한 적절한 사용자 권한을 설정할 수 있습니다.
4단계: 권한 업데이트
우리가 설정한 tomcat
사용자는 Tomcat 설치에 대한 액세스 권한이 있어야 합니다. 지금 설정하겠습니다.
Tomcat 설치의 압축을 푼 디렉토리로 변경합니다.
- cd /opt/tomcat
전체 설치 디렉터리에 대한 tomcat
그룹 소유권을 부여합니다.
- sudo chgrp -R tomcat /opt/tomcat
다음으로, conf
디렉토리와 모든 콘텐츠에 대한 tomcat
그룹 읽기 액세스 권한을 부여하고 디렉토리 자체에 대한 실행 액세스 권한을 부여합니다.
- sudo chmod -R g+r conf
- sudo chmod g+x conf
tomcat
사용자를 webapps
, work
, temp
및 logs
디렉토리:
- sudo chown -R tomcat webapps/ work/ temp/ logs/
이제 적절한 권한이 설정되었으므로 Tomcat 프로세스를 관리하기 위한 systemd 서비스 파일을 만들 수 있습니다.
5단계: systemd 서비스 파일 생성
Tomcat을 서비스로 실행할 수 있기를 원하므로 systemd 서비스 파일을 설정합니다.
Tomcat은 Java가 설치된 위치를 알아야 합니다. 이 경로는 일반적으로 "JAVA_HOME\이라고 합니다. 해당 위치를 찾는 가장 쉬운 방법은 다음 명령을 실행하는 것입니다.
- sudo update-java-alternatives -l
Outputjava-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
올바른 JAVA_HOME
변수는 마지막 열(빨간색으로 강조 표시됨)에서 출력을 가져와 끝에 /jre
를 추가하여 구성할 수 있습니다. 위의 예에서 이 서버의 올바른 JAVA_HOME
은 다음과 같습니다.
JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre
귀하의 JAVA_HOME
은 다를 수 있습니다.
이 정보를 사용하여 systemd 서비스 파일을 만들 수 있습니다. 다음을 입력하여 /etc/systemd/system
디렉토리에서 tomcat.service
라는 파일을 엽니다.
- sudo nano /etc/systemd/system/tomcat.service
다음 내용을 서비스 파일에 붙여넣습니다. 필요한 경우 시스템에서 찾은 값과 일치하도록 JAVA_HOME
값을 수정합니다. CATALINA_OPTS
에 지정된 메모리 할당 설정을 수정할 수도 있습니다.
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre
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
완료되면 파일을 저장하고 닫습니다.
다음으로 서비스 파일에 대해 알 수 있도록 systemd 데몬을 다시 로드합니다.
- sudo systemctl daemon-reload
다음을 입력하여 Tomcat 서비스를 시작합니다.
- sudo systemctl start tomcat
다음을 입력하여 오류 없이 시작되었는지 다시 확인하십시오.
- sudo systemctl status tomcat
6단계: 방화벽 조정 및 Tomcat 서버 테스트
이제 Tomcat 서비스가 시작되었으므로 기본 페이지를 사용할 수 있는지 테스트할 수 있습니다.
그 전에 요청이 서비스에 도달할 수 있도록 방화벽을 조정해야 합니다. 전제 조건을 따랐다면 현재 ufw
방화벽이 활성화되어 있을 것입니다.
Tomcat은 일반적인 요청을 수락하기 위해 포트 8080
을 사용합니다. 다음을 입력하여 해당 포트에 대한 트래픽을 허용합니다.
- sudo ufw allow 8080
방화벽이 수정된 상태에서 웹 브라우저에서 도메인 또는 IP 주소로 이동한 다음 :8080
으로 이동하여 기본 스플래시 페이지에 액세스할 수 있습니다.
Open in web browserhttp://server_domain_or_IP:8080
다른 정보와 함께 기본 Tomcat 시작 페이지가 표시됩니다. 그러나 예를 들어 관리자 앱의 링크를 클릭하면 액세스가 거부됩니다. 다음에 해당 액세스를 구성할 수 있습니다.
성공적으로 Tomcat에 액세스할 수 있었다면 Tomcat이 부팅 시 자동으로 시작되도록 서비스 파일을 활성화하는 것이 좋습니다.
- sudo systemctl enable tomcat
7단계: Tomcat 웹 관리 인터페이스 구성
Tomcat과 함께 제공되는 관리자 웹 앱을 사용하려면 Tomcat 서버에 로그인을 추가해야 합니다. tomcat-users.xml
파일을 편집하여 이 작업을 수행합니다.
- sudo nano /opt/tomcat/conf/tomcat-users.xml
manager-gui
및 admin-gui
(Tomcat과 함께 제공되는 웹 앱)에 액세스할 수 있는 사용자를 추가하고 싶을 것입니다. 아래 예와 같이 tomcat-users
태그 사이에 사용자를 정의하면 됩니다. 사용자 이름과 암호를 안전한 것으로 변경해야 합니다.
<tomcat-users . . .>
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>
완료되면 파일을 저장하고 닫습니다.
기본적으로 최신 버전의 Tomcat은 Manager 및 Host Manager 앱에 대한 액세스를 서버 자체에서 오는 연결로 제한합니다. 원격 시스템에 설치 중이므로 이 제한을 제거하거나 변경하고 싶을 것입니다. 이에 대한 IP 주소 제한을 변경하려면 적절한 context.xml
파일을 엽니다.
Manager 앱의 경우 다음을 입력합니다.
- sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
호스트 관리자 앱의 경우 다음을 입력합니다.
- sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
내부에서 IP 주소 제한을 주석 처리하여 어디서나 연결할 수 있습니다. 또는 자신의 IP 주소에서 오는 연결에만 액세스를 허용하려는 경우 공용 IP 주소를 목록에 추가할 수 있습니다.
<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>
완료되면 파일을 저장하고 닫습니다.
변경 사항을 적용하려면 Tomcat 서비스를 다시 시작하십시오.
- sudo systemctl restart tomcat
8단계: 웹 인터페이스에 액세스
이제 사용자를 생성했으므로 웹 브라우저에서 웹 관리 인터페이스에 다시 액세스할 수 있습니다. 다시 한 번 브라우저의 포트 8080에서 서버의 도메인 이름 또는 IP 주소를 입력하여 올바른 인터페이스에 액세스할 수 있습니다.
Open in web browserhttp://server_domain_or_IP:8080
표시되는 페이지는 이전에 테스트할 때 제공된 페이지와 동일해야 합니다.

링크 또는 http://server_domain_or_IP:8080/manager/html
를 통해 액세스할 수 있는 Manager 앱을 살펴보겠습니다. tomcat-users.xml
파일에 추가한 계정 자격 증명을 입력해야 합니다. 그러면 다음과 같은 페이지가 표시됩니다.

웹 응용 프로그램 관리자는 Java 응용 프로그램을 관리하는 데 사용됩니다. 여기에서 시작, 중지, 다시 로드, 배포 및 배포 취소할 수 있습니다. 앱에서 일부 진단을 실행할 수도 있습니다(예: 메모리 누수 찾기). 마지막으로 서버에 대한 정보는 이 페이지 맨 아래에서 확인할 수 있습니다.
이제 링크 또는 http://server_domain_or_IP:8080/host-manager/html/
를 통해 액세스할 수 있는 호스트 관리자를 살펴보겠습니다.

Virtual Host Manager 페이지에서 애플리케이션을 제공할 가상 호스트를 추가할 수 있습니다.
결론
Tomcat 설치가 완료되었습니다! 이제 자신만의 Java 웹 애플리케이션을 무료로 배포할 수 있습니다!
현재 Tomcat 설치는 작동하지만 완전히 암호화되지 않았습니다. 이는 암호와 같은 민감한 항목을 포함한 모든 데이터가 인터넷에서 다른 당사자가 가로채고 읽을 수 있는 일반 텍스트로 전송됨을 의미합니다. 이를 방지하려면 SSL로 연결을 암호화하는 것이 좋습니다. 이 가이드를 따라 Tomcat에 대한 연결을 암호화하는 방법을 찾을 수 있습니다.