본문 바로가기

IT/Linux

[Linux] CentOS 7 apache와 tomcat 연동 방법

1. Apache 2.4 설치

2020/08/24 - [IT/Linux] - [Linux] CentOS 7 - Apache2.4 다운로드 및 컴파일

 

2. Tomcat 8 설치

2020/02/19 - [IT/Linux] - [Tomcat] CentOS 7에 Tomcat8 설치 및 설정

3. mod_jk.so 설치 및 컴파일

mod_jk.so는 AJP(Apache Jserv Protocol) 프로토콜을 이용해서 Apache와 Tomcat을 연동해주는 모듈입니다.

아파치 설치 경로 : /usr/local/apache2
설치 경로가 다르다면 아파치 경로를 입력할 때, 자신이 설치한 경로로 변경해 기입해줍니다.
# cd /usr/local

# wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
# tar -zxvf tomcat-connectors-1.2.48-src.tar.gz
# cd tomcat-connectors-1.2.48-src/native

# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make
# make install

컴파일이 완료되었다면 /usr/local/apache2/modules/에 mod_jk.so파일이 있는지 확인합니다.

configure: error: Invalid location for apxs: '/usr/local/apache2/bin/apxs' 에러가 발생했을 경우 아래와 같이 설정을 변경해줍니다.

# vi /usr/local/apache2/bin/apxs

맨위에 #!/replace/with/path/to/perl/interpreter -w 를  #!/usr/bin/perl -w 로 변경합니다.

perl이 설치되지 않았다면 다음 명령어를 실행합니다.
yum install perl 
/usr/local/tomcat8/conf/server.xml
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
AJP Connect port가 8009로 되어있는지 확인합니다.

4. apache & tomcat 연동 설정

1) workers.properties

apache와 연동할 worker(tomcat)들을 설정합니다.
# cd /usr/local/apache2/conf
# vi workers.properties

worker.list=tomcat01 // apache와 연동할 tomcat을 입력합니다.
 
worker.tomcat01.port=8009      // AJP 포트
worker.tomcat01.host=localhost // tomcat host
worker.tomcat01.type=ajp13     // ajp1.3 사용 

2) httpd.conf

# vi /usr/local/apache2/conf/httpd.conf

# mod_jk.so 모듈의 위치
LoadModule jk_module /usr/local/apache2/modules/mod_jk.so

# workers.properties 설정 파일 위치
JkWorkersFile /usr/local/apache2/conf/workers.properties

# mod_jk log 위치
JkLogFile /usr/local/apache2/logs/mod_jk.log

# Load balancing workers will not function properly 오류 대응
JkShmFile /usr/local/apache2/logs/mod_jk.shm

# /* 요청을 모두 tomcat01으로 넘긴다
JkMount /* tomcat01
httpd.conf 파일 맨 아래에 위와 같은 코드를 추가해줍니다.

mod_jk.so모듈을 로드하고 연동할 톰캣 정보가 담긴 workers.properties파일을 로드합니다.
그리고 mod_jk.log 위치와 mod_jk.shm 위치를 설정해줍니다.

 

5. apache 재시작 및 테스트

/usr/local/apache2/bin/apachectl restart

브라우저에서 tomcat URL을 80포트로 접근했을 때, 접근이 되어야합니다.
tomcat manager를 통해 테스트를 진행해보겠습니다.

http://192.168.139.130/manager
포트를 따로 입력하지않으면 80포트로 접근 합니다.

위와 같이 접근이 된다면 연동 성공입니다.