본문 바로가기

Server

CentOS 7 Tomcat 7.0.70 설치 및 Apache2.4.23 Tomcat 7.0.70 연동

 - Apache Tomcat 설치 정보

  • Java
jdk1.8.0_101

  • Apache Tomcat Server
apache-tomcat-8.5.4
*  tomcat8.5.4 셋팅시 아래와 같은 서비스 오류가 발생하였습니다.

서비스 내 쿠키 생성시 서브 도메인 에서도 같이 사용 할 수 있도록 ".test.com" 을 도메인으로 생성하는 로직 존재하며,
RFC 6265 Cookie Processor 으로 인해 "."으로 시작되는 도메인으로 쿠키 생성 불가 합니다.

apache-tomcat-7.0.70


- 설치

  • Java 설치

[root@localhost src]# cd /usr/local/src
[root@localhost src]# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-x64.tar.gz"
[root@localhost src]# tar xzf jdk-8u101-linux-x64.tar.gz
[root@localhost src]# mv jdk1.8.0_101 /usr/local/jdk1.8.0_101
[root@localhost src]# ln -s /usr/local/jdk1.8.0_101 /usr/local/java
==> 환경변수 설정 합니다.
[root@localhost src]# vi /etc/profile
...
unset i
unset -f pathmunge
==> 제일 하단에 추가 합니다.
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH="."

[root@localhost src]# source /etc/profile
[root@localhost src]# java
[root@localhost src]# javac

  • Tomcat 설치

[root@localhost src]# cd /usr/local/src
[root@localhost src]# wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70.tar.gz
[root@localhost src]# tar xzf apache-tomcat-7.0.70.tar.gz
[root@localhost src]# mv apache-tomcat-7.0.70 /usr/local/
[root@localhost src]# ln -s /usr/local/apache-tomcat-7.0.70 /usr/local/tomcat



- Apache Tomcat 설정파일 변경 합니다.

[root@localhost src]# chmod +x /etc/init.d/tomcat
export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$JAVA_HOME/lib/:$CATALINA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export LANG="ko_KR.UTF-8"
export LC_ALL="ko_KR.UTF-8"


- Apache Tomcat 서비스로 등록 합니다.

[root@localhost src]# vi /etc/init.d/tomcat

#!/bin/sh
# chkconfig: 2345 90 90
# description: init file for Apache server daemon
# processname: /etc/init.d/tomcat
#

source /etc/profile
tomcat=/usr/local/tomcat
startup=$tomcat/bin/startup.sh
shutdown=$tomcat/bin/shutdown.sh

start() {
 echo -n $"Starting Tomcat service: "
 sh $startup
 echo $?
}

stop() {
 echo -n $"Stopping Tomcat service: "
 sh $shutdown
 echo $?
}

restart() {
 stop
 start
}

status() {
 ps -aef | grep apache-tomcat | grep -v tomcat6 | grep -v grep
}

# Handle the different input options
case "$1" in
start)
 start
 ;;
stop)
 stop
 ;;
status)
 status
 ;;
restart)
 restart
 ;;
*)
 echo $"Usage: $0 {start|stop|restart|status}"
 exit 1
esac

exit 0

 

- 서비스를 시작 합니다.

[root@localhost src]# source /etc/profile
[root@localhost src]# service tomcat start
Starting Tomcat service: Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
0
[root@localhost src]#



- Tomcat의 설치를 확인 합니다.

웹브라우저에 해당 IP 로 접속후 페이지 확인 후 : http://xxx.xxx.xxx.xxx:8080/
고양이 이미지 포함된 홈페이지 확인 합니다.


- Apache 와 Tomcat을 연동 합니다.


  • Tomcat-Connectors 설치 합니다.

[root@localhost src]# cd /usr/local/src
[root@localhost src]# wget http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.41-src.tar.gz
[root@localhost src]# tar xzf tomcat-connectors-1.2.41-src.tar.gz
[root@localhost src]# cd /usr/local/src/tomcat-connectors-1.2.41-src/native
[root@localhost native]# ./configure --with-apxs=/usr/local/apache2/bin/apxs
[root@localhost native]# make
[root@localhost native]# make install

  • mod_jk.conf 생성 합니다.

[root@localhost native]# vi /usr/local/apache2/conf/mod_jk.conf

 

LoadModule jk_module "/usr/local/apache2/modules/mod_jk.so"  

JkWorkersFile "/usr/local/apache2/conf/workers.properties"
JkLogFile "/usr/local/tomcat/logs/mod_jk.log"
JkLogLevel error
JkAutoAlias "/usr/local/tomcat/webapps"
JkMount /* loadbalancer
JkUnmount /*.php loadbalancer
<Directory "/usr/local/tomcat/webapps">
  Options Indexes FollowSymLinks
  allow from all
</Directory>


  • worker.properties 생성 합니다.

[root@localhost native]# vi /usr/local/apache2/conf/workers.properties

worker.list=loadbalancer

worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=1

worker.tomcat2.type=ajp13
worker.tomcat2.host=localhost
worker.tomcat2.port=8009
worker.tomcat2.lbfactor=1

worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=tomcat1,tomcat2


  • httpd.conf을 파일 수정 합니다.

[root@localhost native]# vi /usr/local/apache2/conf/httpd.conf

. . . .
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

#Configure mod_jk
Include conf/mod_jk.conf

# Local access to the Apache HTTP Server Manual
#Include conf/extra/httpd-manual.conf
. . . .

  • SELinux 설정 합니다.

만약 리눅스 시스템이 SELinux 를 사용한다면 이 mod_jk.so 파일에 httpd_modules_t Context 가 설정되어야 apache httpd 가 읽을 수 있습니다.

[root@localhost native]# chcon -u system_u -r object_r -t httpd_modules_t /usr/local/apache2/modules/mod_jk.so
[root@localhost native]# ls -alZ /usr/local/apache2/modules/mod_jk.so
-rwxr-xr-x. root root system_u:object_r:httpd_modules_t:s0 /usr/local/apache2/modules/mod_jk.so



- 서비스를 재시작 합니다.

[root@localhost native]# service tomcat stop
[root@localhost native]# service httpd stop
[root@localhost native]# ps -ef | grep java
root     49433 10418  0 18:40 pts/0    00:00:00 grep --color=auto java
[root@localhost native]# ps -ef | grep httpd
root     49435 10418  0 18:40 pts/0    00:00:00 grep --color=auto httpd
[root@localhost native]# 
[root@localhost native]# 
[root@localhost native]# service httpd start
[root@localhost native]# service tomcat start
Starting Tomcat service: Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
0
[root@localhost native]# ps -ef | grep httpd
root     49449     1  0 18:41 ?        00:00:00 /usr/local/apache2/bin/httpd -k start
daemon   49450 49449  0 18:41 ?        00:00:00 /usr/local/apache2/bin/httpd -k start
daemon   49451 49449  0 18:41 ?        00:00:00 /usr/local/apache2/bin/httpd -k start
daemon   49452 49449  0 18:41 ?        00:00:00 /usr/local/apache2/bin/httpd -k start
daemon   49453 49449  0 18:41 ?        00:00:00 /usr/local/apache2/bin/httpd -k start
root     49594 10418  0 18:41 pts/0    00:00:00 grep --color=auto httpd
[root@localhost native]# ps -ef | grep java
root     49580     1 30 18:41 pts/0    00:00:02 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root     49596 10418  0 18:41 pts/0    00:00:00 grep --color=auto java



- Apache와 Tomcat의 연동을 확인 합니다.

웹브라우저에 해당 IP 로 접속후 페이지 확인 후 : http://xxx.xxx.xxx.xxx/
고양이 이미지 포함된 홈페이지 확인 합니다.