Linux - Apache server와 Tomcat을 JK Connector(JKModule)로 연결하기

Published on: 2011. 1. 31. 12:08 by louis.dev

1. 여기에 들어가서 JK Connector 파일을 다운로드 받습니다.
저는 여기에서 jk/binaries/linux/jk-1.2.31/x86_64/mod_jk-1.2.31-httpd-2.2.x.so 를 다운 받겠습니다. 작업하시는 분의 서버에 따라 다운받으시면 되겠습니다.

2. 이름이 너무 길기 때문에 다운로드된 파일을 mod_jk.so로 변경합니다.

3. apache 서버 루트에 modules 디렉토리에 복사하여 넣습니다. 권한은 755로 주시면 됩니다.
chmod 755 mod_jk.so

4. apache 서버루트에 conf/httpd.conf 에 다음을 추가합니다.
 
 LoadModule jk_module     modules/mod_jk.so
<IfModule jk_module>
  JkWorkersFile conf/workers.properties
  JkLogFile             logs/mod_jk.log
  JkLogLevel    info
  JkMountFile   conf/uriworkermap.properties
</IfModule>

5. conf 디렉토리 밑( httpd.conf와 같은 위치 입니다.) workers.properties 파일을 생성합니다.
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1

6. conf 디렉토리 밑( httpd.conf와 같은 위치 입니다.) uriworkermap.properties 파일을 생성합니다.
/*.do=worker1
/*.jsp=worker1
이렇게 uriworkermap.properties파일에 추가하면 해당 suffix로 URL을 요청하면 tomcat이 처리하게 넘겨주게 됩니다.
특정 컨텍스트의 모든 요청을 톰켓이 처리 하길 원하신 다면
/contextName/*=worker1
로 설정하시면 됩니다.

7. 설정하신후 ${server_root}/bin/apachectl graceful 을 실행하여 서버 설정을 적용합니다.
만약
apachectl: Configuration syntax error, will not run "graceful":
httpd: Syntax error on line 205 of /httpd/conf/httpd.conf: Cannot load /httpd/modules/mod_jk.so into server: /httpd/modules/mod_jk.so: wrong ELF class: ELFCLASS32
라는 문제가 발생한다면 해당 jk 모듈을 서버에 맞게 32비트용, 혹은 64비트용으로 새로 다운받으신후 적용하시면 문제 없이 적용이 되는것을 볼수가 있습니다.