개요
이번 글에서는 Apache HTTPD와 Tomcat 간의 로드밸런싱 방법에 대해서 설명한다.
로드밸런싱은 고가용성을 위해 Apache와 Tomcat을 1:N 또는 N:N 방식으로 연결하여 Request를 분산 처리하며,
하나의 톰캣이 서비스를 중단해도 다른 톰캣이 바로 연결을 이어받을 수 있다.
L4 장비가 없는 로컬 환경에서 진행되므로 이번 글에서는 하나의 Apache에 2대의 톰캣을 연결한다.
연동 환경은 다음과 같다.
- OS : CentOS 6.7
- Apache Version : Apache 2.4.41
- Tomcat Version : Apache Tomcat 9.0.30
- Connector Version : JK 1.2.48
연동 전 준비사항
설정 방법은 이전 글에 나온 세팅을 그대로 사용한다.
https://itwarehouses.tistory.com/11?category=727632
Apache HTTPD to Tomcat , WEB/WAS 연동
개요 이번 글에서는 오픈소스 WEB/WAS의 대표 주자인 Apache HTTPD와 Apache Tomcat을 연동하는 방법을 설명한다. Apache와 Tomcat이 설치되어있다는 전제 하에 진행되므로 미리 설치를 해놓자. 연동 환경은 �
itwarehouses.tistory.com
workers.properties 파일 수정
또다른 Tomcat의 정보를 추가해야 하므로 workers.properties 파일의 내용을 아래와 같이 수정한다.
worker.list=worker1,worker2,lb | worker 목록에 worker2와 lb(로드 밸런서)를 추가 |
worker.worker1.lbfactor=1 | 각 worker가 처리할 부하량을 지정. 현재 설정으로는 1:1 이므로 반반씩 처리한다. |
worker.lb.type=lb | lb worker는 로드 밸런서이므로 lb로 지정. |
worker.lb.balance_workers=worker1,worker2 | 로드 밸런싱할 worker 목록을 지정. |
httpd.conf 파일 수정
요청을 workers.properties에서 설정한 로드 밸런서의 별칭으로 전송하기 위해 httpd.conf 파일의 아래 내용을 수정한다.
테스트
테스트를 위해 Tomcat1의 화면에는 This is Tomcat 1,
Tomcat2의 화면에는 This is Tomcat 2 가 표시되도록 설정하였다.
브라우저 창에 서버 IP를 입력하고 계속 새로고침을 눌러보자.
위와 같이 Tomcat1, Tomcat2의 인덱스 화면이 바뀌면서 출력되는 것을 확인할 수 있다.
httpd.conf 파일의 mod_jk 설정 부분에 아래의 설정을 추가하면 로그로도 확인할 수 있다.
JkRequestLogFormat "%w %R %V %T %U %q"
Apache logs 디렉터리의 mod_jk.log 파일 내용에 request 처리 내역이 추가된다.
이로써 Apache HTTPD와 Tomcat을 연동하고 로드 밸런싱 하는 방법에 대해서 알아보았다.
다음 글에는 Apache HTTPD - Tomcat 간의 세션 클러스터링 방법에 대해서 작성하겠다.
'WebServer | WAS > Apache' 카테고리의 다른 글
Apache HTTPD to Tomcat , WEB/WAS 연동 (0) | 2020.06.04 |
---|---|
Apache 메인 설정 파일 httpd.conf의 설정 요소 (0) | 2019.09.20 |
httpd 옵션 (0) | 2019.09.18 |
apachectl 옵션 (0) | 2019.09.18 |
[CentOS 6] 아파치(Apache) 컴파일 설치 (0) | 2019.09.18 |