본문 바로가기
CSP (Cloud Service Provider)/Azure

WAS : Tomcat설치

by BTC_김현빈 2022. 4. 29.

베하~ 안녕하세요 BETTER MONDAY 팀 입니다.

이번주는 VM을 설치하여 Tomcat을  설치해보도록 하겠습니다.

그럼~~~이번주도 슈우우우웃~~!


 


톰캣(Tomcat)이란?

Tomcat이란 아파치 재단에서 만든 오픈 소스 WAS(Web Application Server)입니다. Tomcat은 Java Servlet과 JSP가 실행할 수 있는 환경을 제공하여 동적인 페이지를 생성합니다. 그리고 DB 연결 및 데이터 조작, 다른 응용프로그램들과 상호 작용이 가능합니다.

WAS(Web Application Server)란?

WAS란 웹 서버와 웹 컨테이너의 결합으로 이루어진 소프트웨어입니다. 웹 서버를 포함하고 있기 때문에 웹 서버처럼 사용할 수도 있습니다. 그리고 웹 서버와 달리 요청에 대해 동적인 페이지를 만들 어 유연하게 응답할 수 있습니다.

 

WAS가 필요한 이유

웹 서버는 정적인 컨텐츠만 제공하기 때문에 클라이언트의 요구사항에 유연하게 대처하지 못합니다. 클라이언트의 요구사항에 유연하게 대처하기 위해 DB와 연결해 데이터를 주고받거나 데이터 조작을 하여 동적인 페이지를 생성해 응답하기 위해 WAS를 사용합니다.


​저번 시간에 설명드린대로 WAS용 VM을 하나 생성하여 CRT 접속을 합니다.

 

 

 

지금부터 Tomcat설치를 시작하겠습니다.

 

우선 root권한으로 변경해줍니다.

sudo -i

OpenJDK 설치

Tomcat 9에는 Java SE 8 이상이 필요합니다. CentOS 7의 기본 Java 개발 및 런타임인 Java Platform의 오픈 소스 구현인 OpenJDK를 설치할 것입니다.

다음 명령을 입력하여 Java를 설치합니다.

yum install java-1.8.0-openjdk-devel -y

설치 완료

Tomcat 시스템 사용자 생성

Tomcat을 루트 사용자로 실행하는 것은 보안상의 위험이며 모범 사례로 간주되지 않습니다.

Tomcat 서비스를 실행할 홈 디렉토리 /opt/tomcat을 사용하여 새 시스템 사용자와 그룹을 생성합니다.

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

useradd 명령어로 시스템 사용자와 그룹을 생성

Tomcat 다운로드

Tomcat 다운로드 페이지에서 최신 버전의 Tomcat 9.0.x를 다운로드할 것입니다.

작성 시 최신 Tomcat 버전은 9.0.64입니다. 다음 단계를 계속하기 전에 Tomcat 9 다운로드 페이지를 확인하여 사용 가능한 최신 버전이 있는지 확인해야 합니다.

다음 wget 명령을 사용하여 /tmp 디렉토리로 이동하고 Tomcat zip 파일을 다운로드합니다.

cd /tmp
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.64/bin/apache-tomcat-9.0.64.tar.gz

다운로드가 완료되면 tar 파일의 압축을 풉니다.

tar -xf apache-tomcat-9.0.64.tar.gz

 

Tomcat 소스 파일을 /opt/tomcat 디렉토리로 이동합니다.

sudo mv apache-tomcat-9.0.64 /opt/tomcat/

 

Tomcat 9는 자주 업데이트됩니다. 버전 및 업데이트를 보다 효과적으로 제어하기 위해 Tomcat 설치 디렉토리를 가리키는 최신이라는 심볼 링크를 만듭니다.

sudo ln -s /opt/tomcat/apache-tomcat-9.0.64 /opt/tomcat/latest

 

Tomcat 사용자는 Tomcat 설치 디렉토리에 액세스할 수 있어야 합니다.

다음 명령을 실행하여 디렉토리 소유권을 사용자 및 그룹 Tomcat으로 변경합니다.

sudo chown -R tomcat: /opt/tomcat

 

다음 chmod 명령을 실행하여 bin 디렉토리 내의 스크립트를 실행할 수 있도록 합니다.

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

완료된 모습입니다.

 

systemd unit 파일 생성

 

Tomcat을 서비스로 실행하도록 하려면 텍스트 편집기를 열고 Tomcat을 만듭니다./etc/systemd/system/directory의 서비스 단위 파일입니다.

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

다음 내용을 붙여 넣습니다.

# /etc/systemd/system/tomcat.service

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

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

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

[Install]
WantedBy=multi-user.target

 

 

저장해줍니다.

 

다음을 입력하여 새 장치 파일을 생성했음을 systemd에 알립니다.

 

sudo systemctl daemon-reload

 

Tomcat 서비스를 활성화하고 시작합니다.

 

sudo systemctl enable tomcat
sudo systemctl start tomcat

 

실행된 이미지입니다.

 

다음 명령을 사용하여 서비스 상태를 확인하십시오.

sudo systemctl status tomcat

톰캣이 정상적으로 실행됩니다.

 

방화벽 조정

서버가 방화벽에 의해 보호되고 로컬 네트워크 외부에서 Tomcat 인터페이스에 액세스하려면 포트 8080을 열어야 합니다.

다음 명령을 사용하여 필요한 포트를 엽니다

 

sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

 

Tomcat 웹 관리 인터페이스 구성

이 때 Tomcat이 설치되어 포트 8080의 웹 브라우저로 액세스할 수 있지만 아직 사용자를 만들지 않았기 때문에 웹 관리 인터페이스에 액세스할 수 없습니다.

Tomcat 사용자와 해당 역할은 Tomcat-users.xml 파일에 정의되어 있습니다.

파일을 열면 파일 구성 방법을 설명하는 설명과 예제로 가득 차 있습니다.

 

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

 

 

 

Tomcat 웹 인터페이스(manager-gui 및 admin-gui)에 액세스할 수 있는 새 사용자를 추가하려면 아래와 같이 tomcat-users.xml 파일에서 사용자를 정의해야 합니다. 사용자 이름과 암호를 보다 안전한 것으로 변경해야 합니다.

 

# /opt/tomcat/latest/conf/tomcat-users.xml

<tomcat-users>
<!--
    Comments
-->
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>

 

 

기본적으로 Tomcat 웹 관리 인터페이스는 로컬 호스트에서만 액세스를 허용하도록 구성되어 있습니다. 보안 위험이 있으므로 권장되지 않는 원격 IP 또는 다른 위치에서 웹 인터페이스에 액세스할 수 있으려면 다음 파일을 열고 다음을 변경할 수 있습니다.

어디에서나 웹 인터페이스에 액세스해야 하는 경우 다음 파일을 열고 노란색으로 강조 표시된 행을 주석 처리하거나 제거합니다.

# /opt/tomcat/latest/webapps/manager/META-INF/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" />
-->
</Context>

특정 IP에서만 웹 인터페이스에 액세스해야 하는 경우 블록에 주석을 달지 않고 공용 IP를 목록에 추가합니다. 공용 IP가 41.41.41이고 해당 IP에서만 액세스를 허용하려고 한다고 가정해 보겠습니다

# /opt/tomcat/latest/webapps/manager/META-INF/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|41.41.41.41" />
</Context>

 

허용된 IP 주소 목록은 세로 막대 |로 구분된 목록입니다. 단일 IP 주소를 추가하거나 정규식을 사용할 수 있습니다

변경 내용을 적용하려면 Tomcat 서비스를 다시 시작합니다.

 

sudo systemctl restart tomcat

 

Tomcat 가상 호스트 관리자 대시보드는 http://<IP_address>:8080/host-manager/html입니다. 여기서 Tomcat 가상 호스트를 생성, 삭제 및 관리할 수 있습니다.

접속에 성공하였습니다. 오늘은 Tomcat설치에 대해 알아봤습니다.


여러분 다음시간에 만나요 안녕~~베바~~~~777

 

출처:https://ko.linux-console.net/?p=190

      https://cheershennah.tistory.com/54

댓글