1. Open JDK 설치
Tomcat9에서는 Java SE 8이상이 필요합니다. 설치 방법은 이전에 작성한 Java 설치 포스팅 링크로 대체합니다.
2. Tomcat 시스템 사용자 생성
Tomcat을 루트 사용자로 실행하는 것은 보안상 위험하기 때문에 Tomcat 서비스를 실행할 홈 디렉토리 /opt/tomcat
을 사용하여 새 시스템 사용자와 그룹을 생성합니다.
$ sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
3. Tomcat 다운로드 및 압축 해제
Tomcat 다운로드 사이트에서 최신 버전의 Tomcat 9를 설치합니다.
$ cd /tmp
$ wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.71/bin/apache-tomcat-9.0.71.tar.gz
$ tar -xf apache-tomcat-9.0.71.tar.gz
4. Tomcat 폴더 이동 및 심볼링크 생성
버전 및 업데이트를 보다 효과적으로 제어하기 위해 Tomcat 설치 디렉토리를 가리키는 최신이라는 심볼 링크를 만듭니다.
$ mv apache-tomcat-9.0.71 /opt/tomcat/
$ ln -s /opt/tomcat/apache-tomcat-9.0.71 /opt/tomcat/latest
5. Tomcat 사용자 권한 부여
$ chown -R tomcat: /opt/tomcat
$ chown -R tomcat: /opt/tomcat/apache-tomcat-*
$ sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
6. Tomcat 서비스 등록
tomcat.service
파일을 생성하여 아래 내용을 붙여 넣은 후 저장합니다.
$ vi /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/java-11-openjdk-11.0.17.0.8-2.el7_9.x86_64"
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
$ systemctl daemon-reload
7. Tomcat 서비스 활성화 및 상태확인
$ systemctl enable tomcat
$ systemctl start tomcat
$ systemctl status tomcat
8. 방화벽 해제
$ sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
$ sudo firewall-cmd --reload
9. Tomcat에서 server.xml 파일 수정
한글 문제로 인하여 UTF-8로 설정하기 위하여 URIEncoding="UTF-8" 추가합니다.
$ vi /opt/tomcat/latest/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
10. Tomcat 웹 관리 인터페이스 구성
Tomcat 웹 인터페이스(manager-gui 및 admin-gui)에 액세스할 수 있는 새 사용자를 추가하려면 아래와 같이 tomcat-users.xml
파일에서 사용자를 정의해야 합니다. 사용자 이름과 암호를 보다 안전한 것으로 변경해야 합니다.
$ vi /opt/tomcat/latest/conf/tomcat-users.xml
<tomcat-users>
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="password" roles="admin-gui,manager-gui"/>
</tomcat-users>
기본적으로 Tomcat 웹 관리 인터페이스는 로컬 호스트에서만 액세스를 허용하도록 구성되어 있습니다. 보안 위험이 있으므로 권장되지 않는 원격 IP 또는 다른 위치에서 웹 인터페이스에 액세스할 수 있으려면 다음 파일을 열고 다음을 변경할 수 있습니다.
$ vi /opt/tomcat/latest/webapps/manager/META-INF/context.xml
어디에서나 웹 인터페이스에 액세스해야 하는 경우 다음 파일을 열고 <value>
요소를 주석 처리하거나 제거합니다.
<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에서만 액세스를 허용하려고 한다면 아래와 같이 allow
속성에 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|220.123.45.163" />
</Context>
변경 내용을 적용하려면 Tomcat 서비스를 다시 시작합니다.
$ systemctl restart tomcat
'Server' 카테고리의 다른 글
[CentOS] Jenkins 설치방법 (0) | 2022.12.13 |
---|---|
[CentOS] Apache Maven 설치 방법 (0) | 2022.12.12 |
[CentOS] Apache 설치 및 Tomcat 연동(mod_jk) (0) | 2022.12.10 |
[CentOS] Java OpenJDK 11 설치 및 환경변수 설정 (0) | 2022.12.08 |
[CentOS] PostgreSQL 설치 및 설정 (0) | 2022.10.07 |