웹사이트 검색

CentOS 7에 Apache Tomcat 8을 설치하는 방법


소개

Apache Tomcat은 Java 애플리케이션을 제공하는 데 사용되는 웹 서버 및 서블릿 컨테이너입니다. Tomcat은 Apache Software Foundation에서 출시한 Java Servlet 및 JavaServer Pages 기술의 오픈 소스 구현입니다. 이 튜토리얼은 CentOS 7 서버에서 최신 Tomcat 8 릴리스의 기본 설치 및 일부 구성을 다룹니다.

전제 조건

이 가이드를 시작하기 전에 서버에 루트가 아닌 별도의 사용자 계정을 설정해야 합니다. CentOS 7의 초기 서버 설정에서 1-3단계를 완료하여 이를 수행하는 방법을 배울 수 있습니다. 이 튜토리얼의 나머지 부분에서는 여기에서 생성된 demo 사용자를 사용합니다.

자바 설치

Tomcat에서는 모든 Java 웹 응용 프로그램 코드를 실행할 수 있도록 Java가 서버에 설치되어 있어야 합니다. yum으로 OpenJDK 7을 설치하여 해당 요구 사항을 충족해 보겠습니다.

yum을 사용하여 OpenJDK 7 JDK를 설치하려면 다음 명령을 실행합니다.

  1. sudo yum install java-1.7.0-openjdk-devel

OpenJDK 7 설치를 계속하려면 프롬프트에서 y로 응답합니다.

나중에 Tomcat을 구성해야 하는 JAVA_HOME 디렉토리에 대한 바로 가기는 /usr/lib/jvm/jre에서 찾을 수 있습니다.

이제 Java가 설치되었으므로 Tomcat 서비스를 실행하는 데 사용할 tomcat 사용자를 생성해 보겠습니다.

Tomcat 사용자 생성

보안을 위해 Tomcat은 권한이 없는 사용자(즉, 루트가 아님)로 실행해야 합니다. Tomcat 서비스를 실행할 새 사용자 및 그룹을 생성합니다.

먼저 새 tomcat 그룹을 만듭니다.

  1. sudo groupadd tomcat

그런 다음 새 tomcat 사용자를 만듭니다. 우리는 이 사용자를 /opt/tomcat의 홈 디렉터리(Tomcat을 설치할 위치)와 </bin/false(아무도 계정에 로그인할 수 없도록):

  1. sudo useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat

이제 tomcat 사용자가 설정되었으므로 Tomcat을 다운로드하여 설치해 보겠습니다.

톰캣 설치

현재 Tomcat 8을 설치하는 가장 쉬운 방법은 최신 바이너리 릴리스를 다운로드한 다음 수동으로 구성하는 것입니다.

Tomcat 바이너리 다운로드

Tomcat 8 다운로드 페이지에서 최신 버전의 Tomcat 8을 찾으십시오. 작성 당시 최신 버전은 8.5.37입니다. Binary Distributions 섹션의 Core 목록에서 "tar.gz\에 대한 링크를 복사합니다.

wget을 사용하여 홈 디렉토리에 최신 바이너리 배포판을 다운로드합시다.

먼저 yum 패키지 관리자를 사용하여 wget을 설치합니다.

  1. sudo yum install wget

그런 다음 홈 디렉터리로 변경합니다.

  1. cd ~

이제 wget을 사용하고 링크를 붙여넣어 다음과 같이 Tomcat 8 아카이브를 다운로드합니다(미러 링크는 예와 다를 수 있음).

  1. wget https://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz

Tomcat을 /opt/tomcat 디렉토리에 설치하겠습니다. 디렉터리를 만든 다음 다음 명령을 사용하여 아카이브를 추출합니다.

  1. sudo mkdir /opt/tomcat
  2. sudo tar xvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1

이제 적절한 사용자 권한을 설정할 준비가 되었습니다.

권한 업데이트

우리가 설정한 tomcat 사용자는 Tomcat 설치에 대한 적절한 액세스 권한이 있어야 합니다. 지금 설정하겠습니다.

Tomcat 설치 경로로 변경:

  1. cd /opt/tomcat

전체 설치 디렉터리에 대한 tomcat 그룹 소유권을 부여합니다.

  1. sudo chgrp -R tomcat /opt/tomcat

다음으로, conf 디렉토리와 모든 콘텐츠에 대한 tomcat 그룹 읽기 액세스 권한을 부여하고 디렉토리 자체에 대한 실행 액세스 권한을 부여합니다.

  1. sudo chmod -R g+r conf
  2. sudo chmod g+x conf

그런 다음 tomcat 사용자를 webapps, work, templogs 디렉토리:

  1. sudo chown -R tomcat webapps/ work/ temp/ logs/

이제 적절한 권한이 설정되었으므로 Systemd 단위 파일을 설정하겠습니다.

Systemd 단위 파일 설치

Tomcat을 서비스로 실행할 수 있기를 원하기 때문에 Tomcat Systemd 단위 파일을 설정합니다.

다음 명령을 실행하여 단위 파일을 만들고 엽니다.

  1. sudo vi /etc/systemd/system/tomcat.service

다음 스크립트를 붙여넣습니다. CATALINA_OPTS에 지정된 메모리 할당 설정을 수정할 수도 있습니다.

# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/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=/bin/kill -15 $MAINPID

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

저장 및 종료. 이 스크립트는 지정된 설정을 사용하여 Tomcat 서비스를 tomcat 사용자로 실행하도록 서버에 지시합니다.

이제 Systemd를 다시 로드하여 Tomcat 단위 파일을 로드합니다.

  1. sudo systemctl daemon-reload

이제 이 systemctl 명령으로 Tomcat 서비스를 시작할 수 있습니다.

  1. sudo systemctl start tomcat

다음을 입력하여 서비스가 성공적으로 시작되었는지 확인하십시오.

  1. sudo systemctl status tomcat

서버 부팅 시 시작되도록 Tomcat 서비스를 활성화하려면 다음 명령을 실행합니다.

  1. sudo systemctl enable tomcat

Tomcat은 아직 완전히 설정되지 않았지만 웹 브라우저에서 도메인 또는 IP 주소로 이동한 다음 :8080으로 이동하여 기본 스플래시 페이지에 액세스할 수 있습니다.

Open in web browser:
http://server_IP_address:8080

다른 정보와 함께 기본 Tomcat 시작 페이지가 표시됩니다. 이제 Tomcat 설치에 대해 더 자세히 살펴보겠습니다.

Tomcat 웹 관리 인터페이스 구성

Tomcat과 함께 제공되는 관리자 웹앱을 사용하려면 Tomcat 서버에 로그인을 추가해야 합니다. tomcat-users.xml 파일을 편집하여 이 작업을 수행합니다.

  1. sudo vi /opt/tomcat/conf/tomcat-users.xml

이 파일은 파일 구성 방법을 설명하는 주석으로 채워져 있습니다. 다음 두 줄 사이의 모든 주석을 삭제하거나 예제를 참조하려는 경우 그대로 둘 수 있습니다.

<tomcat-users>
...
</tomcat-users>

manager-guiadmin-gui(Tomcat과 함께 제공되는 웹앱)에 액세스할 수 있는 사용자를 추가하고 싶을 것입니다. 아래 예와 유사한 사용자를 정의하여 그렇게 할 수 있습니다. 사용자 이름과 암호를 안전한 것으로 변경해야 합니다.

<tomcat-users>
    <user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>

tomcat-users.xml 파일을 저장하고 종료합니다.

기본적으로 최신 버전의 Tomcat은 Manager 및 Host Manager 앱에 대한 액세스를 서버 자체에서 오는 연결로 제한합니다. 원격 시스템에 설치 중이므로 이 제한을 제거하거나 변경하고 싶을 것입니다. 이에 대한 IP 주소 제한을 변경하려면 적절한 context.xml 파일을 엽니다.

Manager 앱의 경우 다음을 입력합니다.

  1. sudo vi /opt/tomcat/webapps/manager/META-INF/context.xml

호스트 관리자 앱의 경우 다음을 입력합니다.

  1. sudo vi /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 서비스를 다시 시작하십시오.

  1. sudo systemctl restart tomcat

웹 인터페이스에 액세스

이제 Tomcat이 실행되고 있으므로 웹 브라우저에서 웹 관리 인터페이스에 액세스해 보겠습니다. 포트 8080에서 서버의 공용 IP 주소에 액세스하여 이를 수행할 수 있습니다.

Open in web browser:
http://server_IP_address:8080

다음 이미지와 같은 내용이 표시됩니다.

보시다시피 관리 사용자를 구성한 관리 웹앱에 대한 링크가 있습니다.

링크 또는 http://server_IP_address:8080/manager/html를 통해 액세스할 수 있는 Manager 앱을 살펴보겠습니다.

웹 응용 프로그램 관리자는 Java 응용 프로그램을 관리하는 데 사용됩니다. 여기에서 시작, 중지, 다시 로드, 배포 및 배포 취소할 수 있습니다. 앱에서 일부 진단을 실행할 수도 있습니다(예: 메모리 누수 찾기). 마지막으로 서버에 대한 정보는 이 페이지 맨 아래에서 확인할 수 있습니다.

이제 링크 또는 http://server_IP_address:8080/host-manager/html/를 통해 액세스할 수 있는 호스트 관리자를 살펴보겠습니다.

Virtual Host Manager 페이지에서 애플리케이션을 제공할 가상 호스트를 추가할 수 있습니다.

결론

Tomcat 설치가 완료되었습니다! 이제 자신만의 Java 웹 애플리케이션을 무료로 배포할 수 있습니다!