티스토리 뷰
안녕하세요. 오늘은 앞서 설치 했던 Apache(web server)와 Tomcat(was server)을 연동하는 방법에 대해서 포스팅하려고 합니다.
1. Apache와 Tomcat을 연동하는 이유 ?
로드밸런싱(병열로 운용되고 있는 기기 사이에서의 부하가 가능한 한 균등하게 되도록 작업 처리를 분산하여 할당하는 것을 말한다. 컴퓨터 내에서 여러 개의 마이크로프로세서에 작업의 처리를 균등하게 배정하거나 네트워크 상에서의 접속요구를 여력이 있는 서버로 돌리거나 하는 등 여러 분야에서 광범위하게 사용되고 있는 개념입니다. by 네이버 백과사전)이 가능하고, 서버 분리가 가능하다는 이유입니다.
2. 연동 방법 3가지
방식 |
장점 |
단점 |
mod_jk |
- 관련 자료가 많음 - JkMount 옵션을 이용하면 URL이나 컨텐츠별로 유연한 설정이 가능 (이미지는 웹서버, 서블릿은 톰켓) |
- 별도의 모듈을 설치해야 됨 - 설정의 어려움 - Tomcat 전용 |
mod_proxy |
- 별도 모듈 설치가 필요없고(apache 기본 모듈) 설정이 간편 - 특정 WAS에 의존적이지 않으므로 모든 WAS에 적용 가능 |
- URL 별 유연한 설정이 어려움 - ProxyPassMatch 사용 필요 |
mod_proxy_ajp |
- 별도 모듈 설치가 필요없고(apache 기본 모듈) 설정이 간편 - 특정 WAS에 의존적이지 않으므로 모든 WAS에 적용 가능 |
- URL 별 유연한 설정이 어려움 - ProxyPassMatch 사용 필요 |
위 3가지 방법 중 여기서는 관련자료가 많은 mod_jk의 사용방법에 대해서 진행해보도록 하겠습니다.
3. mod_jk 사용
mod_jk 모듈을 설치하고 선행적으로 apxs 모듈이 설치되어 있어야 합니다.
1) yum install httpd-devel 명령어를 입력하고 y를 눌러 설치를 진행
2) cd /opt 명령어로 opt 디렉토리로 이동
3) wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz 명령어로 다운로드
4) tar xzf tomcat-connectors-1.2.42-src.tar.gz 명령어로 압축 해제
5) cd /opt/tomcat-connectors-1.2.42-src/native <<< 다음 경로로 이동
6) ./configure --with-apxs=/usr/bin/apxs
7) make
8) make install
만약, SELinux를 사용한다면 mod_jk.so에 httpd_modules_t Context가 설정되어야 apache httpd가 읽을 수 있습니다. 다음 명령어를 사용해서 설정해주면 됩니다.
chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so
4. vi /etc/httpd/conf.modules.d/00-base.conf 명령어를 사용해 아래 내용을 추가해줍니다.
LoadModule jk_module modules/mod_jk.so
5. vi /etc/httpd/conf.d/mod_jk.conf 명령어를 사용해 아래 내용을 추가해줍니다.
<IfModule mod_jk.c>
# Where to find workers.properties
JkWorkersFile conf/workers_jk.properties
# Where to put jk shared memory
JkShmFile run/mod_jk.shm
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
## url pattern 에 따른 connector mapping
JkMountFile conf/uriworkermap.properties
</IfModule>
6. vi /etc/httpd/conf/workers_jk.properties 명령어를 사용해 아래 내용을 추가해줍니다.
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
tomcat의 server.xml을 참조
tomcat의 기본 Encoding은 ISO-8859-1이기 때문에 UTF-8 ( URIEncoding="UTF-8" )로 변경해줍니다. (:set nu 또는 :set number로 줄 번호 확인 가능)
7. vi [CATALINA_HOME]/conf/server.xml 명령어를 사용해서 다음 내용과 같이 수정합니다.
8. vi /etc/httpd/conf/uriworkermap.properties 명령어를 사용해서 다음을 추가해줍니다.
/*=worker1
9. systemctl restart httpd.service 명령어를 사용해서 서버를 restart 합니다.
그리고 마지막으로 apache와 tomcat이 제대로 연동되었는지 확인하기 위해서 톰켓을 실행시키고, 웹 브라우저를 키고 기존의 ip:8080 의 형태로 포트 번호를 입력해야 됬지만, ip만 주소창에 입력해도 다음과 같은 창이 뜨면 성공적으로 연동된 것을 확인할 수 있습니다.
그럼 이것으로 mod_jk 방법을 사용해서 apache와 tomcat을 연동하는 포스팅을 마치도록 하겠습니다.
- Total
- Today
- Yesterday