mod_jk와 mod_proxy

kim·2024년 7월 19일

Apache WebServer와 Tomcat 연동을 AJP를 이용하여 연동가능

그 연동 방법은 Tomcat에서 제공하는 mod_jk 모듈과 mod_proxy 를 이용하는 두가지 방법이 있다.

1. AJP

웹서버로 들어오는 요청을 웹서버 뒤에 있는 애플리케이션 서버로 위임할 수 있는 바이너리 프로토콜이다.
애플리케이션 서버로 핑을 할 수 있는 모니터링 기능을 지원하고 일반적으로 하나 이상의 프론트엔드 웹서버가 하나 이상의 애플리케이션 서버에 로드밸런싱 되는 배포에서 AJP를 사용한다.
세션은 라우팅 메커니즘을 사용항 올바른 애플리케이션 서버로 리다이렉션 된다.
AJP는 HTTP 포워딩 용도로만 사용되기 때문에 안전하지 않다.

  • Apache와 Tomcat이 연동 되기 위해선 AJP를 통해 서로 통신을 하여야한다.
  • AJP(Apache Jserv Protocol)는 웹서버로 들어오는 요청을 웹서버 뒤에 있는 애플리케이션 서버로 위임할 수 있는 바이너리 프로토콜
  • Apache HTTP Server, Apache Tomcat, 웹스피어, 웹로직 JBoss, JEUS, 등 다양한 WAS 지원
  • AJP는 HTTP의 내용을 포워드 용도

동작방식

  1. Apache WebServer의 httpd.conf에 통캣 연동을 위한 설정을 추가하고 톰캣에서 처리할 요청을 지정
  2. 사용자 브라우저가 서버에 접속(port 80)
  3. Apache WebServer는 사용자의 요청이 Tomcat에서 처리하도록 되어있는 요청인지 확인 후, Tomcat에서 처리해야하는 경우 Tomcat의 AJP포트로 요청을 위임(Default 8009번 port)
  4. Tomcat은 웹서버로 부터 요청을 받아 처리 후 처리 결과를 웹서버로 돌려준다.
  5. 웹서버는 Tomcat으로 받은 처리 결과를 사용자에게 전달.

Mod_jk와 mod_proxy 차이

1. mod_jk

Apache와 Tomcat을 연동하기 위한 모듈로써 AJP를 이용하여 Apache에 들어온 요청중 Tomcat이 처리할 요청을 AJP 포트 (Default 8009)를 통해 Tomcat에 전달하고 그에 대한 응답을 받는 역할을 수행

연동설정

1. 아파치 홈/conf/httpd.conf 파일을 설정한다.

  • 이 설정 파일에서는 mod_jk를 연동하는 설정과 mod_jk.conf의 경로를 지정하여 요청 처리에대한 설정 및 로그 파일 등을 기술 한다.
# vi 를 통하여 httpd.conf 파일을 수정

$~ cd /apche 설치경로/httpd/conf
$~ vi httpd.conf

# mod_jk.so 파일 연동을 위한 설정
#mod_jk.so 모듈의 위치
LoadMoule jk_module /etc/httpd/modules/mod_jk.so

#workers.properties 설정 파일 위치
JkWorkersFile /etc/httpd/conf/workers.properties

#mod_jk log 위치
JkLogFile /etc/httpd/logs/mod_jk.log

#Load balancing workers will not function properly 오류 대응
JkShmFile /etc/httpd/logs/mod_jk.shm

# /* 요청을 모두 tomcat01으로 넘긴다.
JkMount /* tomcat01

2. workers.properties 파일 설정

Apache와 연동할 worker(Tomcat)들을 설정한다.

vi /etc/httpd/conf/workers.properties

worker.list=tomcat01 // apache와 연동할 tocmat을 입력한다.

worker.tomcat01.port=8009 // AJP 포트
worker.tomcat01.host=127.0.0.1 // tomcat host, AJP Connector 설정의 address와 일치하도록 설정
worker.tomcat01.type=ajp13 // ajp 1.3 사용
profile
공부하자

0개의 댓글