구동 환경
CentOS 7
tomcat 9.0.5
MySQL 5.6.29
letsencrypt SSL(webroot)
java 설치 및 환경변수 설정
# cd /usr/local/src
# wget –user=apm –ask-password http://ris.smileserv.com/source/java_tomcat/jdk-8u231-linux-x64.tar.gz
# tar zxvf jdk-8u231-linux-x64.tar.gz
# mv jdk1.8.0_231/ /usr/local/java
# vi /etc/profile
JAVA_HOME=/usr/local/java
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=$JAVA_HOME/lib/tools.jar :$JRE_HOME/lib:
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:
export JAVA_HOME JRE_HOME CLASSPATH PATH
# source /etc/profile
# java -version / 자바 설치 확인
tomcat 설치 및 환경변수 설정
# cd /usr/local/src
# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.5/bin/apache-tomcat-9.0.5.tar.gz
# tar zxvf apache-tomcat-9.0.5.tar.gz
# mv apache-tomcat-9.0.5 /usr/local/tomcat
# vi /etc/profile
JAVA_HOME=/usr/local/java
JRE_HOME=$JAVA_HOME/jre
CATALINA_HOME=/usr/local/tomcat
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CATALINA_HOME/lib/jsp-api.jar:
$CATALINA_HOME/lib/servletapi.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$CATALINA_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH CATALINA_HOME
빨간색 부분 추가
# source /etc/profile
tomcat 실행 및 확인
또는 # /usr/local/tomcat/bin/startup.sh
방화벽 8005, 8009, 8080번 포트 허용
tomcat 실행 스크립트 생성
# /etc/init.d/tomcat
#!/bin/bash
# Startup script for the Tomcat Server
# chkconfig: 345 50 50
# description: Tomcat is a Web application server.
# processname: java
# directory : CATALINA_HOME=/usr/local/tomcat
source /etc/profile
export CATALINA_HOME=/usr/local/tomcat
case “$1” in
start)
echo “Starting tomcat: “
$CATALINA_HOME/bin/startup.sh
;;
stop)
echo “Shutting down tomcat: “
$CATALINA_HOME/bin/shutdown.sh
;;
restart)
echo “Restarting tomcat: “
$CATALINA_HOME/bin/shutdown.sh;
$CATALINA_HOME/bin/startup.sh
;;
*)
echo “Usage: service tomcat {start|stop|restart}”
exit 1
esac
exit 0
-> 저장
# chkconfig –-add tomcat
# chkconfig –-level 3 tomcat on
톰캣 포트 변경
# vi /usr/local/tomcat/conf/server.xml
<Connector port=”80” protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />
8080 포트를 80번 포트로 변경 후 톰캣 재시작
80번 포트로 변경 후 도메인 뒤 8080을 붙이지 않아도 정상적으로 접속되는 것을 볼 수 있습니다
루트 디렉토리 변경
<Host> 태그는 가상의 호스트를 정의하며 톰캣의 기본 루트 디렉토리는 webapps/ROOT 입니다 (http://localhost:8080 -> webapps/ROOT)
appBase는 $CATALINA_HOME 디렉토리의 상대 경로를 인자로 받는데, appBase를 “webapps”로 설정한다면 $CATALINA_home/webapps로 루트 디렉토리가 설정됩니다. (/usr/local/tomcat/webapps/ROOT)
여기서 <Context> 태그가 생략되어 있다면 ROOT 디렉토리를 자동으로 루트 디렉토리로 사용합니다.
<Context> 태그를 통해 appBase의 하위 디렉토리를 루트 디렉토리로 설정할 수 있습니다.
<Host name=”localhost” appBase=”webapps”
unpackWARs=”true” autoDeploy=”true”>
↓
<Host name=”localhost” appBase=”[설정할 디렉토리]”
unpackWARs=”true” autoDeploy=”true”>
<Context path=”/” docBase=”.” reloadable=”false”></Context>
여기서 appBase는 젠킨스 빌드 시 war 파일이 생성되는 디렉토리이며, 톰캣 구동 시 <Context> 태그의 docBase를 기준으로 웹을 구동합니다.
변경 시 appBase를 절대경로로 지정 후 docBase를 현재 디렉토리로 설정하거나, <Host> 태그 설정은 건너뛰고 <Context> 태그의 docBase에 절대경로로 지정하여 설정할 수도 있습니다.
변경 후 테스트
# vi /home/maxkonan/index.jsp
저장 후 도메인으로 접속하여 정상적으로 뜨는지 확인
SSL 적용(letsencrypt)
# vi /usr/local/tomcat/conf/server.xml
<Connector port=”8443″ protocol=”org.apache.coyote.http11.Http11NioProtocol”
maxThreads=”150″ SSLEnabled=”true”>
<SSLHostConfig>
<Certificate certificateKeystoreFile=”conf/localhost-rsa.jks”
type=”RSA” />
</SSLHostConfig>
</Connector>
↓
<Connector port=”443” protocol=”org.apache.coyote.http11.Http11NioProtocol”
maxThreads=”150″ SSLEnabled=”true” scheme=”https” secure=”true”>
<SSLHostConfig>
<Certificate certificateKeyFile=”/etc/letsencrypt/live/[도메인]/privkey.pem”
certificateFile=”/etc/letsencrypt/live/[도메인]/cert.pem”
certificateChainFile=”/etc/letsencrypt/live/[도메인]/fullchain.pem”
type=”RSA” />
</SSLHostConfig>
</Connector>
https 리다이렉트 설정
# vi /usr/local/tomcat/conf/server.xml
<Connector port=”80” protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”443” />
# vi /usr/local/tomcat/conf/web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL Forward</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
추가 후 저장하고 tomcat 재시작하면 https 없어도 자동으로 https로 접속이 됩니다
톰캣 구동시 속도가 너무 느린것을 해결
# yum install haveged
mysql connector 다운로드
# cd /usr/local/src
# wget –user=apm –ask-password http://ris.smileserv.com/source/java_tomcat/mysql-connector-java-5.1.47.tar.gz
# tar xvf mysql-connector-java-5.1.47.tar.gz
# cd mysql-connector-java-5.1.47
# cp -arp mysql-connector-java-5.1.47.jar /usr/local/tomcat/lib/
# /etc/init.d/tomcat restart
mysql 연동 테스트
# vi /home/maxkonan/dbtest.jsp
저장후 정상적으로 출력되는지 확인