'mod_jk'에 해당되는 글 1건

  1. 2014.10.24 Ubuntu에서 Apache+Tomcat 연동 1
2014. 10. 24. 23:20
- mod_jk와 mod_proxy이용하기

mod_jk의 경우 별도의 모듈을 설치해야 해서 설정이 어려운 반면 mod_proxy는 별도의 모듈 설치가 필요 없어 설정이 간편한 편이다. 하지만 mod_jk는 JkMount옵션을 이용하여 URL이나 컨텐츠 별로 유연한 설정이 가능하지만 mod_proxy는 컨텐츠 별로 유연한 설정이 어렵다. 요구에 맞게 알맞은 이용을 하기를 권장한다.

Apache와 Tomcat이 다음의 위치에 설치하였다고 가정하고 작업을 진행한다.

Apache: $APACHE_HOME=/usr/local/apache2

Tomcat: $CATALINA_HOME=/opt/tomcat8




mod_jk 이용하기


mod_jk는 Apache Tomcat의 Tomcat Connectors Download 사이트에서 다운로드 받을 수 있다.

 tar xvfz tomcat-connectors-1.2.40-src.tar.gz

 $ cd tomcat-connectors-1.2.40-src/native

 $ ./configure --with-apxs=/usr/local/apache2/bin/apxs

 $ make

 $ sudo make install


혹은

 $ sudo apt-get install libapache2-mod-jk


1. mod_jk 설정하기 
- "mod_jk.conf" 파일을 생성

 $ sudo vi /usr/local/apache2/conf/mod_jk.conf


##### mod_jk.conf #####

LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
    JkWorkersFile    conf/workers.properites
    JkLogFile           logs/mod_jk.log
    JkLogLevel         info
    JkMount              /* ajp13_worker

</IfModule>
 # apt-get으로 설치 시 /etc/libapache2-mod-jk/httpd-jk.conf 파일을 참조

- worker의 속성을 정의

 $ sudo vi /usr/local/apache2/conf/workers.properties


##### workers.properties #####
workers.tomcat_home=/opt/tomcat8
workers.java_home=/usr/lib/jvm/jdk1.8.0
ps=/
# worker list
worker.list= ajp13_worker
# ajp13_worker definition
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
worker.ajp13_worker.lbfactor=1
# default load balancer worker definition
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=ajp13_worer

# apt-get으로 설치 시 /etc/libapache2-mod-jk/workers.properties 파일을 참조

2. 아파치 설정
mod_jk.conf 파일을 httpd.conf에 추가

 $ sudo vi /usr/local/apache2/conf/httpd.conf


IncludeOptional conf/mod_jk.conf

# apt-get으로 설치 시 /etc/apache2/apache2.conf를 참조

3. tomcat 설정
- ajp 통신하는 부분의 주석을 제거

 $ sudo vi /opt/tomcat8/conf/server.xml


<!-- Define an AJP 1.3 Connector on port 8009 -->
<!--
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->
# apt-get으로 설치 시 /var/lib/tomcat7/conf/server.xml를 참조


4. 테스트
자! 이제 http://localhost와 http://localhost:8080을 확인해보자.
동일하게 보인다. 연동 설정이 제대로 완료가 된 것이다.

- http://localhost/tomcat-demo를 확인해보자!
1. mod_jk.conf를 수정

 $ sudo vi /usr/local/apache2/conf/mod_jk.conf


##### mod_jk.conf #####

LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
    JkWorkersFile    conf/workers.properites
    JkLogFile           logs/mod_jk.log
    JkLogLevel         info
    JkMount              /
tomcat-demo* ajp13_worker

</IfModule>
"JKMount /ajp13_worker" 라고 표기하면 http://ip/tomcat-demo 로 시작하는 주소는 모두 커넥터 설정에서 지정한 ajp13_worker로 연결을 해준다.

2. tomcat-demo생성
$ sudo mkdir -p /opt/tomcat8/webapps/tomcat-demo
$ vi /var/lib/tomcat7/webapps/tomcat-demo/index.jsp

<HTML>
  <BODY>
     Hello!  The time is now <%= new java.util.Date() %>
  </BODY>
</HTML>

5. 아파치, 톰캣 재시작
$ sudo /etc/init.d/apache2 restart
$ sudo /etc/iinit.d/tomcat8 restart

6. 확인
http://localhost:8080/tomcat-domo와 http://localhost/tomcat-domo 를 브라우져에서 테스트해보자




mod_jk 이용하기

 $ sudo vi /usr/local/apache2/conf/httpd.conf


1.  httpd.conf에서 mod_proxy.so와 mod_proxy_http.so를 로드
다음을 찾아 주석(#)을 제거한다.

LoadModule proxy_module modules/mod_proxy.so

...
LoadModule proxy_http_module modules/mod_proxy_http.so


2. VirtualHost를 설정해보자!

다음을 찾아 주석(#)을 제거한다.

Include conf/extra/httpd-vhosts.conf


 $ sudo vi /usr/local/apache2/conf/extra/httpd-vhosts.conf

다음을 추가해주자.

...

<VirtualHost *:80>

    ServerName tomcat-demo.com
    ProxyRequests off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass / http://localhost:8080/tomcat-demo/
    ProxyPassReverse / http://localhost:8080/tomcat-demo/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>


2. 확인

 $ sudo vi /etc/hosts

다음을 추가하고

127.0.0.1  tomcat-demo.com

http://tomcat-demo.com:8080/tomcat-domo와 http://tomcat-demo.com/tomcat-domo 를 브라우져에서 테스트해보자



Posted by 모바일헌터