본문 바로가기
OS/Linux

mod_jk와mod_proxy의 차이점

by BTC_김현빈 2022. 5. 22.

베하~~~안녕하세요 BetterMonday 팀입니다. 오늘은 Apache Web Server와 tomcat을 연동하는 벙법인 mod_jk와mod_proxy의 차이점에 대해 알아보는 시간을 가지도록 하겠습니다.

그럼 시~~~작 하겠습니다~~~


 

 

아파치와 톰캣을 연동하는 이유

  • Tomcat 서버는 본연의 임무인 서블릿 컨테이너의 역할만 하고, Apache HTTP Server는 웹서버의 역할을 하도록 각각의 기능을 분리하기 위해 연동을 할 수 있다.
  • Apache HTTP Server에서 제공하는 편리한 기능을 사용하기 위해서 연동을 할수 있다.
  • 대규모 사용자가 사용하는 시스템을 구축할 때 웹 서버인 아파치와 연동을 하면 부하 분산의 효과를 가질 수 있다. mod_jk의 Load Balancing과 FailOver 기능을 사용하여 안정적으로 운영 할 수 있다.

- 아파치 내에서만 설정할 수 있는 부분이 있고, 아파치에서 제공하는 유용한 모듈들을 톰캣에서 사용할 수 없기 때문이다.


 

연동 원리

아파치와 톰캣이 연동하기 위해선 AJP를 통해 서로 통신을 하여야 한다.

AJP란 아파치가 웹서버와 외부 서비스(톰캣 등)과 연동하기 위해 정한 규약(프로토콜) 이다.

아파치는 이를 사용하여 80포트로 들어오는 요청은 자신이 받고, 이 요청중 서블릿을 필요로 하는 요청은 톰캣에 접속하여 처리한다.

  1. 아파치 웹서버의 httpd.conf 에 톰캣 연동을 위한 설정을 추가하고 톰캣에서 처리할 요청을 지정
  2. 사용자의 브라우저는 아파치 웹서버(보통 80포트)에 접속해 요청
  3. 아파치 웹서버는 사용자의 요청이 톰캣에서 처리하도록 지정된 요청인지 확인. 요청을 톰캣에서 처리해야 하는 경우

아파치 웹서버는 톰캣의 AJP포트(보통 8009포트)에 접속해 요청을 전달

  1. 톰캣은 아파치 웹서버로부터 요청을 받아 처리한 후, 처리 결과를 아파치 웹서버에 되돌려줌
  2. 아파치 웹서버는 톰캣으로부터 받은 처리 결과를 사용자에게 전송

 

Apache httpd web server 와 tomcat을 연계하는 방법은 세 가지가 있습니다.

전부터 많이 쓰던 방법은 Tomcat connector(mod_jk)를 사용하는 방법이고 다른 하나는 mod_proxy

를 사용하여 reverse proxy기능을 사용하는 방법, 마지막은 mod_proxy_ajp를 사용하여 AJP Protocol을 reverse proxy로 사용하는 방법이 있습니다.


mod_proxy

mod_proxy는 Apache 서버에서 포워드 프록시,리버스 프록시 ,그리고 부하 분산 기능을 위해 사용하는 모듈이다. 이 모듈은 내장 모듈이며, httpd 패키지를 설치하면 사용할 수 있다. 여기서 리버스 클라이언트 요청을 다른 애플리케이션 서버나 다른 웹 서버로 전달할 수 있는 기능을 의미한다.

장점

  • 컴파일하고 관리할 별도 모듈이 필요없음.mod_proxy,mod_proxy_http,mod_proxy_ajp와mod_proxy_balancer는 표준 Apache2.2이상 배포 부분이 됨
  • 동일한 발란서에서 http,https와 AJP 프로토콜 지원
  • 특정 WAS에 의존적이지 않으므로 모든 WAS에 적용 가능

 

 

단점

  • mod_proxy_ajp는 8K 이상 패킷 사이즈를 지원하지 않음
  • 기본적인 로드 밸런서
  • 도메인 모델 클러스터링을 지원하지 않음
  • URL 별 유연한 설정이 어려움

mod_jk

아파치와 톰캣을 연동하기 위한 모듈로써 AJP 프로토콜을 이용하여 아파치에 들어온 요청 중 톰캣이 처리할 요청을 AJP 포트(일반적으로 8009)를 통해 톰캣에 전달하고 그에 대한 응답을 받는 역할을 수행합니다.

장점:

  • 발전된 로드 밸런서
  • 발전된 노드 장애 감지
  • 8k 이상의 큰AJP 패킷 크기 지원
  • 관련 자료가 많다.

단점

  • 별도 모듈을 빌드하고 관리 필요

 


이번시간에 저희가 준비한 내용은 여기까지 입니다.mod_jk와 mod_proxy의 차이점을 알아봤습니다.

다음시간에 만나요 베바~

 

 

 

출처:https://blueyikim.tistory.com/194

https://www.lesstif.com/system-admin/apache-httpd-tomcat-connector-mod_jk-reverse-proxy-mod_proxy-12943367.html

https://sepiros.tistory.com/16

 

'OS > Linux' 카테고리의 다른 글

[Linux] CentOS - Systemd 개요  (0) 2022.05.24
[OS]리눅스 배포판 종류와 특징  (1) 2022.05.23
[Linux] CentOS - 런 레벨  (0) 2022.05.17
[OS] 유닉스의 발전 과정 및 리눅스 역사  (0) 2022.05.16
[ Linux ] 작업 관리 (1)  (0) 2022.05.13

댓글