글 작성자: drizzle_
728x90

Apache Tomcat 소프트웨어는 Apache Software Foundation에서 개발 한 Java Servlet, JavaServer Pages, Java Expression Language 및 Java WebSocket의 오픈 소스이다.

Tomcat은 Apache2 또는 Nginx HTTP 서버만큼 인기가 없지만 일부 프로젝트에는 매우 중요하다.

Tomcat은 Java 서버 페이지 코딩 및 Java 서블릿을 포함하는 웹 페이지를 렌더링 할 때 가장 잘 작동한다.


설치하기

1. OpenJDK설치하기

Tomcat이 작동하려면 Java JDK가 설치되어 있어야한다. Oracle Java JDK 또는 OpenJDK라는 오픈 소스 대안을 설치할 수도 있다.

먼저, apt를 업데이트한다

sudo apt update

JDK를 설치한다

sudo apt install default-jdk

2. Tomcat설치하기

https://tomcat.apache.org/download-80.cgi 여기서 최신 버전을 확인한 후 다운로드한다.

cd /tmp
wget ftp://apache.cs.utah.edu/apache.org/tomcat/tomcat-8/v9.0.35/bin/apache-tomcat-9.0.35.tar.gz

다운로드 후 /opt /tomcat에서 새 Tomcat 디렉토리를 생성한다. 그런 다음 다운로드 한 컨텐츠를 해당 디렉토리로 추출합니다.

sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat --strip-components=1

권한을 설정한다.

sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'

3. TomCat 설정하기

파일이 성공적으로 추출 되었다면, Tomcat을 설정한다.

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

사용자의 비밀번호가있는 계정을 만들고 아래 행을 파일에 복사하여 </ tomcat-users> 바로 전에 붙여 넣어 저장한다.

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

저장하고 빠져나온다.

 

그리고 서버 계정을 만들어야한다

sudo nano /etc/systemd/system/tomcat.service

그리고 아래에 있는 줄들을 복사하고 붙여넣는다(Xms512M -Xmx1024M은 톰캣이 사용할 메모리를 정하는건데, 변경해도 상관 없다.)

[Unit]
Description=Tomcat servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/default-java"
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

저장하고 빠져나온다.

 

재시작 했을 때 톰캣이 자동으로 실행될 수 있게 해준다.

sudo systemctl daemon-reload
sudo systemctl start tomcat.service
sudo systemctl enable tomcat.service

톰캣이 정상적으로 작동하고 있는지 확인한다.

sudo systemctl status tomcat.service

정상적으로 실행되고 있다면 아래와 비슷한게 나올것이다.

tomcat.service - Tomcat 8.5 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-07-14 13:46:15 CDT; 1min 35s ago
 Main PID: 8947 (java)
    Tasks: 46 (limit: 4680)
   CGroup: /system.slice/tomcat.service
           └─8947 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.mana

Jul 14 13:46:15 ubuntu1804 systemd[1]: Starting Tomcat 8.5 servlet container...
Jul 14 13:46:15 ubuntu1804 startup.sh[8937]: Existing PID file found during start.
Jul 14 13:46:15 ubuntu1804 startup.sh[8937]: Removing/clearing stale PID file.
Jul 14 13:46:15 ubuntu1804 startup.sh[8937]: Tomcat started.
Jul 14 13:46:15 ubuntu1804 systemd[1]: Started Tomcat 8.5 servlet container.

진짜로 정상적으로 작동하는지 확인하기 위해 http://localhost:8080에 접속한다.(아마 아이피로 접속하면 접속이 되지 않을것이다)

이쁘게 생긴 호랑이?고양이?와 함께 톰캣의 기본 페이지를 볼 수 있을 것 이다.

 

백엔드 페이지에 로그인 하기 위해 Manager App 을 클릭한다.

기본적으로 Tomcat은 Manager 및 Host Manager 앱에 대한 액세스를 로컬 서버로 오는 연결로 제한한다.

Tomcat 서버에 원격으로 액세스하려면 허용 할 원격 IP 주소를 화이트리스트에 추가하고 싶습니다. IP 주소 제한을 변경하려면 적절한 context.xml 파일을연다.


Manager 앱의 경우 다음을 입력한다.

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

Host Manager의 경우는 다음을 입력한다

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

내부에서 IP 주소 제한을 주석 처리하여 어디서나 연결할 수 있다. 또는 자신의 IP 주소에서 오는 연결에만 액세스를 허용하려는 경우 공개 IP 주소를 목록에 추가 할 수도 있다.

 

Tomcat webapps의 context.xml 파일은 다음과 유사해야한다.

<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|new_public_ip_address_here" />-->
</Context>

저장하고 빠져나온다.

 

이제 방화벽을 설정해준다.

sudo ufw allow 8080

 

끝났다. 이제 http://아이피주소:8080으로 접속해본다.

고양이?호랑이?가 나오면 성공이다.

 

728x90
Email: b1@yeonw.me / 여기를 눌러 다른 연락 수단들 알아보기