웹사이트 검색

Debian 10에 Apache Tomcat 10을 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. 자바 설치
  4. Apache Tomcat 설치
  5. Tomcat 웹 관리 사용자 만들기
  6. Tomcat의 원격 액세스 허용\n
  7. Tomcat용 Systemd Unit 파일 생성
  8. Tomcat용 Nginx 구성
  9. Tomcat 애플리케이션 액세스\n
  10. 결론

Apache Tomcat은 오픈 소스이며 Java 기반 애플리케이션을 호스팅하는 데 사용되는 가장 널리 사용되는 웹 애플리케이션 서버입니다. Java Servlet, JSP(JavaServer Pages), Java EL과 함께 제공되며 Java 코드를 실행할 수 있는 환경을 제공합니다. Tomcat은 경량, 고도의 유연성, 문서화, 추가 수준의 보안, 완성도 등 다양한 기능을 제공합니다.

이 튜토리얼에서는 Debian 10 서버에 Apache Tomcat 10을 설치하는 방법을 설명합니다.

전제 조건

  • Debian 10을 실행하는 서버.\n
  • 서버 IP를 가리키는 유효한 도메인 이름입니다.\n
  • 루트 암호는 서버에서 구성됩니다.\n

시작하기

시작하기 전에 다음 명령을 사용하여 시스템 패키지를 최신 버전으로 업데이트하십시오.

apt-get update -y

모든 패키지가 업데이트되면 다음 단계로 진행할 수 있습니다.

자바 설치

Apache Tomcat은 Java 기반 애플리케이션입니다. 따라서 서버에 Java를 설치해야 합니다. 다음 명령을 사용하여 Java를 설치할 수 있습니다.

apt-get install default-jdk -y

설치 후 아래 명령을 사용하여 Java 버전을 확인하십시오.

java --version

다음 출력은 서버에 설치된 Java 버전을 보여줍니다.

openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)

완료되면 다음 단계로 진행할 수 있습니다.

아파치 톰캣 설치

이 튜토리얼을 작성할 당시 사용 가능한 최신 Apache Tomcat 버전은 10.0.7입니다.

먼저 다음 명령을 사용하여 Apache Tomcat을 실행할 사용자를 추가합니다.

useradd -m -d /opt/tomcat -U -s /bin/false tomcat

다음으로 다음 명령을 사용하여 Apache Tomcat 10을 다운로드합니다.

wget https://mirrors.estointernet.in/apache/tomcat/tomcat-10/v10.0.7/bin/apache-tomcat-10.0.7.tar.gz

다운로드가 완료되면 다음 명령을 사용하여 다운로드한 파일을 /opt/tomcat 디렉터리에 추출합니다.

tar -xzvf apache-tomcat-10.0.7.tar.gz -C /opt/tomcat --strip-components=1

그런 다음 다음 명령을 사용하여 /opt/tomcat 디렉토리에 적절한 소유권을 설정합니다.

chown -R tomcat:tomcat /opt/tomcat/

완료되면 다음 단계로 진행할 수 있습니다.

Tomcat 웹 관리 사용자 생성

다음으로 Tomcat 관리 인터페이스에 액세스하려면 관리 사용자를 생성해야 합니다. tomcat-users.xml 파일을 편집하여 만들 수 있습니다.

nano /opt/tomcat/conf/tomcat-users.xml

마지막 줄 앞에 다음 줄을 추가합니다.

<role rolename="manager-gui" />
<user username="manager" password="pasword" roles="manager-gui" />

<role rolename="admin-gui" />
<user username="admin" password="password" roles="manager-gui,admin-gui" />

완료한 후 파일을 저장하고 닫습니다. 이제 다음 단계를 진행할 수 있습니다.

Tomcat의 원격 액세스 허용

기본적으로 Tomcat은 로컬 시스템에서만 액세스하도록 구성됩니다. 따라서 원격 시스템에서 액세스할 수 있도록 Tomcat을 구성해야 합니다.

먼저 Tomcat 관리자 애플리케이션에 대한 원격 액세스를 허용하도록 context.xml 파일을 편집합니다.

nano /opt/tomcat/webapps/manager/META-INF/context.xml

다음 줄을 제거하거나 주석 처리합니다.

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

파일을 저장하고 닫은 다음 context.xml 파일을 편집하여 Tomcat 호스트 관리자 애플리케이션에 대한 원격 액세스를 허용합니다.

nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

다음 줄을 제거합니다.

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

완료되면 파일을 저장하고 닫습니다. 이제 다음 단계를 진행할 수 있습니다.

Tomcat용 Systemd Unit 파일 생성

다음으로 Tomcat 서비스를 관리하기 위해 시스템 단위 파일을 생성해야 합니다. 다음 명령으로 만들 수 있습니다.

nano /etc/systemd/system/tomcat.service

다음 줄을 추가합니다.

[Unit]
Description=Tomcat
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

파일을 저장하고 닫은 다음 systemd 데몬을 다시 로드하여 변경 사항을 적용합니다.

systemctl daemon-reload

그런 다음 Tomcat 서비스를 시작하고 다음 명령을 사용하여 시스템 재부팅 시 시작되도록 활성화합니다.

systemctl start tomcat
systemctl enable tomcat

이제 다음 명령을 사용하여 Tomcat 서비스의 상태를 확인할 수 있습니다.

systemctl status tomcat

다음 출력이 표시되어야 합니다.

? tomcat.service - Tomcat
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-07-01 04:58:39 UTC; 15s ago
  Process: 5706 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 5713 (java)
    Tasks: 29 (limit: 2359)
   Memory: 154.7M
   CGroup: /system.slice/tomcat.service
           ??5713 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.ut

Jul 01 04:58:39 tomcat systemd[1]: Starting Tomcat...
Jul 01 04:58:39 tomcat startup.sh[5706]: Tomcat started.
Jul 01 04:58:39 tomcat systemd[1]: Started Tomcat.

이 시점에서 Tomcat이 시작되고 포트 8080에서 수신 대기합니다. 다음 명령으로 확인할 수 있습니다.

ss -antpl | grep 8080

다음 출력이 표시되어야 합니다.

LISTEN   0        100                          *:8080                  *:*       users:(("java",pid=5713,fd=43))

완료되면 다음 단계로 진행할 수 있습니다.

Tomcat용 Nginx 구성

다음으로 Nginx를 리버스 프록시로 사용하여 Tomcat 애플리케이션에 액세스하는 것이 좋습니다.

먼저 다음 명령을 사용하여 Nginx 웹 서버를 설치합니다.

apt-get install nginx -y

Nginx가 설치되면 새 Nginx 가상 호스트 구성 파일을 만듭니다.

nano /etc/nginx/conf.d/tomcat.conf

다음 줄을 추가합니다.

server {
  listen 80;

  server_name    tomcat.example.com;
  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8080/;
  }
}

완료되면 파일을 저장하고 닫은 다음 다음 명령을 사용하여 구문 오류가 있는지 Nginx를 확인합니다.

nginx -t

다음 출력이 표시되어야 합니다.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

그런 다음 Nginx를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart nginx

다음 명령을 사용하여 Nginx 서비스의 상태를 확인할 수도 있습니다.

systemctl status nginx

모든 것이 정상이면 다음 출력이 표시됩니다.

? nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-07-01 05:00:32 UTC; 6s ago
     Docs: man:nginx(8)
  Process: 6322 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 6323 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 6324 (nginx)
    Tasks: 2 (limit: 2359)
   Memory: 2.7M
   CGroup: /system.slice/nginx.service
           ??6324 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ??6325 nginx: worker process

Jul 01 05:00:32 tomcat systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 01 05:00:32 tomcat systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Jul 01 05:00:32 tomcat systemd[1]: Started A high performance web server and a reverse proxy server.

완료되면 다음 단계로 진행할 수 있습니다.

Tomcat 애플리케이션에 액세스

이제 웹 브라우저를 열고 URL http://tomcat.example.com을 사용하여 Tomcat 애플리케이션에 액세스합니다. 다음 페이지로 리디렉션됩니다.

앱 관리를 클릭합니다. 관리자 앱 로그인 페이지가 표시됩니다.

관리자 사용자 이름, 비밀번호를 제공하고 로그인 버튼을 클릭합니다. 다음 페이지에 Manager 앱 대시보드가 표시되어야 합니다.

Host Manager에 액세스하려면 Tomcat 홈 페이지에서 Host Manager를 클릭합니다. Tomcat 호스트 관리자 로그인 페이지가 표시되어야 합니다.

관리자 사용자 이름, 비밀번호를 제공하고 로그인 버튼을 클릭합니다. 다음 페이지에 Tomcat 호스트 관리자 대시보드가 표시되어야 합니다.

결론

축하합니다! Debian 10 서버에 Apache Tomcat 10을 성공적으로 설치했습니다. 이제 Java 애플리케이션을 만들고 Apache Tomcat을 사용하여 호스팅할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.