Apache + Tomcat 설치 및 연동
설치환경 : CentOs7
설치 버전
JAVA - 8u261(1.8.261)
Apache - 2.2.34
Apache Tomcat - 8.5.21
Tomcat Connectors - 1.2.48
* Apache 설치
[root@kaget ~]# cd /usr/local/
[root@kaget local]# wget https://archive.apache.org/dist/httpd/httpd-2.2.34.tar.gz
[root@kaget local]# tar xvfz httpd-2.2.34.tar.gz
[root@kaget local]# cd httpd-2.2.34
[root@kaget httpd-2.2.34]# ./configure --prefix=/app/apache --enable-so --enable-rewrite --with-included-apr
[root@kaget httpd-2.2.34]# make
[root@kaget httpd-2.2.34]# make install
- Apache 서비스 등록
[root@kaget local]# vi /usr/lib/systemd/system/apache.service
[Unit]
Description=Apache2.2
After=network.target syslog.target
[Service]
Type=forking
PIDFile=/app/apache/logs/httpd.pid
ExecStart=/app/apache/bin/apachectl start
ExecReload=/app/apache/bin/apachectl graceful
ExecStop=/app/apache/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
* JAVA 설치
파일은 여기서 다운로드할 수 있습니다.
[root@kaget ~]# cd /usr/local/
[root@kaget local]# tar xvfz jdk-8u261-linux-x64.tar.gz
[root@kaget local]# mkdir /app/jdk1.8
[root@kaget local]# mv jdk1.8.0_261 /app/jdk1.8
- JAVA 최초 설치 시
[root@kaget ~]# vi /etc/prifile
export JAVA_HOME=/app/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
- 기존 JAVA가 존재할 경우
아래의 명령어를 입력합니다.
update-alternatives --install /usr/bin/javac javac /app/jdk1.8/bin/javac 1
update-alternatives --install /usr/bin/java java /app/jdk1.8/bin/java 1
update-alternatives --config javac
update-alternatives --config java
[root@kaget ~]# java -version
* Tomcat 설치
[root@kaget ~]# cd /usr/local/
[root@kaget local]# wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.21/bin/apache-tomcat-8.5.21.tar.gz
[root@kaget local]# tar xvfz apache-tomcat-8.5.21.tar.gz
[root@kaget local]# mkdir /app/tomcat8.5.21
[root@kaget local]# mv apache-tomcat-8.5.21 /app/tomcat8.5.21
- 환경변수 설정
[root@kaget ~]# vi /etc/profile
#tomcat
export CATALINA_HOME=/app/tomcat8.5.21
- Tomcat 환경 설정
[root@kaget ~]# vi /app/tomcat8.5.21/conf/server.xml
(아래의 내용을 찾아서 다음과 같이 수정 합니다.)
<Connector port="8080" protocol="HTTP/1.1"
URIEncoding="UTF-8"
connectionTimeout="20000"
redirectPort="8443" />
- Tomcat 서비스 등록
[root@kaget ~]# /app/tomcat8.5.21/bin/catalina.sh stop
[root@kaget ~]# vi /usr/lib/systemd/system/tomcat.service
[Unit]
Description=tomcat8.5
After=network.target syslog.target
[Service]
Type=forking
Environment=JAVA_HOME=/app/jdk1.8
User=root
Group=root
ExecStart=/app/tomcat8.5.21/bin/startup.sh
ExecStop=/app/tomcat8.5.21/bin/shutdown.sh
UMask=0007
RestartSec=10
Restart=always
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
- Tomcat Manager 설정
[root@kaget ~]# vi /app/tomcat8.5.21/conf/tomcat-users.xml
( 가장 아래의 </tomcat-users> 바로 위에 내용을 추가합니다. )
<role rolename="manager"/>
<role rolename="manager-gui" />
<role rolename="manager-script" />
<role rolename="manager-jmx" />
<role rolename="manager-status" />
<role rolename="admin"/>
<user username="admin" password="manager" roles="admin,manager,manager-gui, manager-script, manager-jmx, manager-status"/>
[root@kaget ~]# vi /app/tomcat8.5.21/conf/Catalina/localhost/manager.xml
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
* Apache, Tomcat 연동
[root@kaget ~]# cd /usr/local/
[root@kaget local]# wget http://mirror.apache-kr.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
[root@kaget local]# tar xvfz tomcat-connectors-1.2.48-src
[root@kaget local]# cd tomcat-connectors-1.2.48-src/native
[root@kaget native]# ./configure --with-apxs=/app/apache/bin/apxs
[root@kaget native]# make
[root@kaget native]# make install
- Apache worker 설정
[root@kaget ~]# vi /app/apache/conf/workers.properties
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
- Apache, Tomcat 연동 설정
[root@kaget ~]# vi /app/apache/conf/httpd.conf
아래의 내용을 추가합니다.
LoadModule jk_module modules/mod_jk.so
맨 아래에 다음과 같은 내용을 추가 합니다.
# tomcat connection
<IfModule mod_jk.c>
JkWorkersFile /app/apache/conf/workers.properties
JkLogFile /app/apache/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkShmFile /app/apache/logs/mod_jk.shm
JkMount /*.jsp worker1
</IfModule>