본문 바로가기
리눅스

Apache + mod_jk + Tomcat 연동

by Joseph.Lee 2016. 4. 11.

아... Apache 에다가 Tomcat연동은 처음이라서 이틀동한 해멨네요..ㅠㅠ


Note 1.

 httpd.conf 에서의 Include 순서 주의!

 

 저는 httpd.conf 맨 아래에 Include conf.d/*.conf 을 써놓고 conf.d안의 모든 *.conf파일을 인클루트 하도록 해놓습니다.

 그리고 jk.conf에 jk관련 설정을 넣어놓고 httpd-vhosts.conf 에 가상호스트 설정을 넣어놓았습니다.

 그런데 도저히 가상 호스트에 jk가 적용되지 않았었는데... 그 이유가 바로 "순서" 때문이었습니다.

 jk을 먼저 인클루트 해야 LoadModule을 하는데 순서가 반대가 되버린거죠...

 그래서 지금은 10-jk.conf 50-vhosts.conf 이렇게 파일이름을 바꿔 인클루트되는 순서를 정해놓았습니다.


Note 2.

 아파치 설정 파일 내용


10-jk.conf


LoadModule jk_module modules/mod_jk.so

<IfModule jk_module>

    JkLogFile        /var/log/httpd/jk-module.log

    JkShmFile        /var/run/httpd/jk-module.shm

    JkLogLevel       info

    JkWorkersFile    conf.d/jk/workers.properties

</IfModule>



conf.d/jk/workers.properties


workers.tomcat_home=/usr/local/tomcat

workers.java_home=/usr/local/java/bin/java

ps=/

worker.list=worker1

worker.worker1.port=8009

worker.worker1.host=localhost

worker.worker1.type=ajp13

worker.worker1.lbfactor=1



50-vhosts.conf

<VirtualHost *:80>
    ServerAdmin webmaster@email
    DocumentRoot "/www-directory"
    ServerName domain.com
    ServerAlias www.domain.com
    ErrorLog "/var/log/httpd/www.domain.com-error.log"
    CustomLog "/var/log/httpd/www.domain.com-access.log" common
    <IfModule jk_module>

        JkMount /*.jsp worker1
        JkMount /*.do worker1

    </IfModule>
    <Directory "/www-directory">
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>


Note 3.
 tomcat에서도 설정이 필요합니다.

tomcat의 server.xml에 추가

      <Host name="domain.com" appBase="webapps"

        unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

        <Alias>www.domain.com</Alias>

        <Context path="" reloadable="true" docBase="/www-directory" debug="0"/>

      </Host>



이런식으로 하니 잘 되네요~

반응형

댓글