[CentOS7] Tomcat 9 install

[CentOS7] Tomcat 9 install

tomcat download : https://archive.apache.org/dist/tomcat/

 

  • tomcat 설치전 java-1.8 을 설치 합니다.
  • tomcat 유저를 생성 합니다.
[root@CentOS7 ~]# yum install -y java-1.8.0-openjdk-devel
[root@CentOS7 ~]# useradd -m -U -d /opt/tomcat -s /bin/false tomcat

 

  • apache-tomcat-9.0.14 를 다운 받습니다.
  • 압축 해제후 /opt/tomcat 으로 이동 합니다.
  • tomcat.service 파일을 생성 합니다.
  • daemon-reload 후 tomcat 을 구동 합니다.
[root@CentOS7 ~]# cd /tmp
[root@CentOS7 tmp]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
[root@CentOS7 tmp]# tar -xf apache-tomcat-9.0.14.tar.gz
[root@CentOS7 tmp]# mv apache-tomcat-9.0.14 /opt/tomcat/
[root@CentOS7 tmp]# ln -s /opt/tomcat/apache-tomcat-9.0.14 /opt/tomcat/latest
[root@CentOS7 tmp]# chown -R tomcat: /opt/tomcat
[root@CentOS7 tmp]# sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
[root@CentOS7 tmp]# 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/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

[root@CentOS7 tmp]# systemctl daemon-reload
[root@CentOS7 tmp]# systemctl enable tomcat
[root@CentOS7 tmp]# systemctl start tomcat

 

  • 방화벽 사용시 8080 포트를 오픈 합니다.
[root@CentOS7 ~]# firewall-cmd --zone=public --permanent --add-port=8080/tcp
[root@CentOS7 ~]# firewall-cmd --reload

 

  • tomcat 에 접속해 봅니다.

 

  • Tomcat 웹 관리 인터페이스 구성
  • 8080 port 를 통하여 웹 접속은 가능 하지만 사용자를 만들지 않아 웹 관리 인터페이스에 액세스 할수 없습니다.
  • Tomcat 사용자는 tomcat-users.xml 파일에 정의 됩니다.
  • tomcat-users.xml 를 수정 합니다.
[root@CentOS7 ~]# vi /opt/tomcat/latest/conf/tomcat-users.xml
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <user username="admin" password="password1" roles="admin-gui,manager-gui"/>
</tomcat-users>

 

  • 기본적으로 Tomcat 웹 관리 인터페이스는 localhost 에서만 액세스 할수 있도록 구성 되어 있습니다.
  • 보안 위험이 있음으로 원격 ip 또는 권장 되지 않은 곳에서 웹 인터페이스에 액세스 하려면  context.xml 파일을 수정 해야 합니다.
  • 어디에서나 접근 가능하게 설정 하기 위하여 아래 라인을 주석 처리 합니다.

 

모든 ip 접속 가능 설정

[root@CentOS7 ~]# vi /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" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
-->
</Context>


[root@CentOS7 ~]# vi /opt/tomcat/latest/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" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
-->
</Context>

 

  •  설정변경후 tomcat 재시작
[root@CentOS7 ~]# systemctl restart tomcat

 

특정 아이피 192.168.0.1 에서만 접속 설정

[root@CentOS7 ~]# vi /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|192.168.0.1" />
</Context>

[root@CentOS7 ~]# vi /opt/tomcat/latest/webapps/host-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|192.168.0.1" />
</Context>

 

  •  설정변경후 tomcat 재시작
[root@CentOS7 ~]# systemctl restart tomcat

 

 

  • 응용프로그램 을 배포, 배포해제 , 시작 , 중시 및 리로드 할수 있습니다.

 

 

댓글 남기기