개요


이번 글에서는 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

개요


이번 글에서는 오픈소스 WEB/WAS의 대표 주자인 Apache HTTPD와 Apache Tomcat을 연동하는 방법을 설명한다.

 

Apache와 Tomcat이 설치되어있다는 전제 하에 진행되므로 미리 설치를 해놓자.

 

연동 환경은 다음과 같다.

 

- OS : CentOS 6.7

- Apache Version : Apache 2.4.41

- Tomcat Version : Apache Tomcat 9.0.30

- Connector Version : JK 1.2.48

 

연동 전 준비사항


Apache와 Tomcat을 연동하기 위해서는 전용 모듈인 mod_jk 모듈이 필요하다.

 

해당 모듈은 아래의 경로에서 받을 수 있다.

 

리눅스 기반에서 진행되므로 tar.gz로 압축된 파일을 받자.

 

https://tomcat.apache.org/download-connectors.cgi

 

Apache Tomcat® - Tomcat Connectors (mod_jk) Downloads

You must verify the integrity of the downloaded files. We provide OpenPGP signatures for every release file. This signature should be matched against the KEYS file which contains the OpenPGP keys of Tomcat's Release Managers. We also provide SHA512 checksu

tomcat.apache.org

 

 

mod_jk 컴파일


다운로드한 tomcat connector 1.2.48 파일의 압축을 해제하고 생성된 디렉터리안의 native 디렉터리로 이동한다.

 

해당 위치에서 아래의 명령을 실행한다.

 

./configure --with-apxs=아파치설치경로/bin/apxs

 

필자의 경우에는 ./configure --with-apxs=/apache24/bin/apxs 였다.

 

Configure 후 make && make install 명령을 통해 컴파일을 마무리한다.

 

컴파일 후 mod_jk.so 모듈이 생성되었는지 확인하려면 Apache 설치 경로의 modules 디렉터리를 확인한다.

 

 

workers.properties 파일 생성


httpd.conf를 설정하기 전에 먼저 workers.properties 파일을 생성해야 한다.

 

workers.properties는 Apache와 연동할 Tomcat의 정보 및 관련 파라미터 값을 설정하는 파일이다.

 

아파치설치경로/conf 디렉터리에 vi workers.properties 명령으로 파일을 생성하고 아래의 내용을 입력한다.

 

 

 

worker.list=worker1 연동할 Tomcat의 별칭
worker.worker1.type=ajp13 worker1에서 사용할 프로토콜 (ajp13 프로토콜이 기본값)
worker.worker1.host=localhost worker1의 IP 주소 또는 호스트명 (WEB/WAS가 같은 서버에 있으므로 loclahost)
worker.worker1.port=8009 worker1의 AJP 포트번호 (8009번 포트가 기본값)

 

httpd.conf 설정 추가


httpd.conf 파일 하단에 아래의 내용을 추가한다.

 

 

LoadModule jk_module modules/mod_jk.so

-> mod_jk.so 모듈을 사용하기위해 적재

 

<IfModule jk_module>

</IfModule>

->  jk_module이 적재되어 있는 동안에만 해당 설정을 적용

 

JkWorkersFile conf/workers.properties

위에서 생성한 workers.properties 파일의 경로를 설정

 

JkLogFile logs/mod_jk.log

연동에 관련된 로그파일이 생성될 경로를 설정

 

JkLogLevel info

로그 파일의 레벨을 설정

 

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

로그 내용의 각 라인 앞에 찍히는 스탬프의 형식을 설정

 

JkMount /* worker1

Apache HTTPD로 들어오는 요청을 worker1로 전송

 

 

연동 테스트


현재 Apache HTTPD는 80, Tomcat은 8080 포트를 사용 중이다.

 

정상적으로 연동되었다면 80번 포트로 접속 시 Apache가 8009번 포트를 통해 Tomcat으로 Request를 전달한다.

 

웹브라우저에 서버 IP를 입력하여 접속해보자.

 

 

IP에 :8080을 붙이지 않고 80번 포트로 접속했을 때 Tomcat의 기본 인덱스 화면이 표시되는 것을 볼 수 있다.

 

이로써 Apache HTTPD와 Apache Tomcat을 연동하는 방법에 대해서 알아보았다.

+ Recent posts