WEB,WAS 및 기술

[WEB/WAS] apache + tomcat 여러개의 톰켓 연동 처리

hunhee44 2026. 1. 7. 10:52

∴주의 이글은 초심자용 글입니다. 

목표. apache에 여러개의 tomcat 구성해보기


안녕하세요

이번시간엔 tomcat session clustering 을 기술하려고 했는데 

생각해보니 제 블로그에서 apache 1대와 여러개의 tomcat을 구성해본적이 없어

apache 1대에 tomcat 2대를 붙여보도록 하겠습니다.

실무에선 apache 2대 tocmat 2대를 사용해서 크로스로 묶어서 사용하는일이 많습니다.

 

예시) apache2 tomcat2 크로스

 

WEB/WAS 연동 아키텍쳐
apache2대 tomcat2대 크로스

 

위 그림처럼 2대 2대 이용해서 사용하는경우가 많습니다.

WEB#1 이 문제가 있거나 서버의 문제가 있어 죽으면

WEB#2한개로 버티고 WEB#1을 복구 하는것이죠.

WAS의 경우도 비슷합니다.

 

오늘 저희는 WEB1개 그리고 WAS2개를 연동 해보는 시간을 갖도록 하겠습니다.

 

 


 

 

사전준비

1.방화벽

포트포워딩을 이용하시면 

web -> was 의 방향으로 ajp port 를 열어주시면됩니다.

 

2. apache 1대

apache2.4 

mod_jk.so 사용

 

3. tomcat 2대

tomcat 9버전 2대

 

 

apache, tomcat 설치글은 아래링크의

글목록에 있습니다.

 

https://hunhee44.tistory.com/category/WEB%2CWAS

 

'WEB,WAS' 카테고리의 글 목록

WEB/WAS 엔지니어 같이 공부해보자! tomcat/apache/nginx 등 필요한 정보들을 공유 해드립니다!

hunhee44.tistory.com

 


 

사전준비까지 마치셨으면 이제 설치를 진행해보도록 하겠습니다.

tomcat 설치는 다 되어있다는 가정하에 시작하겠습니다.

 

tomcat apache 설치된 서버 확인
구성

저는 보통 이름을 같게 하는데 가독성을 위해서

이름을 달리해서 구성해보겠습니다.

ip 192.168.111.60      tomcat-9, apache2.4

ip 192.168.111.200    tomcat-9_2

 

보통 WEB 서버도 분리되어 있지만 서버가 부족해서 

192.168.111.60 에 tomcat,apache

192.168.111.200에 tomcat  구성으로 하겠습니다.

 


설치

1.tomcat

 

tomcat의 ajp port 부터 적용해주겠습니다.

#tomcat 2대 전부 설정하셔아 합니다.
pwd
/home/hunhee/tomcat-9/conf
/home/hunhee/tomcat-9_2/conf

#사소한 변경도 백업필수
cp server.xml server.xml_20260107

vi server.xml

#ajp port 설정

   <Connector protocol="AJP/1.3"
               address="0.0.0.0"
               port="8009"
               redirectPort="8443"
               maxParameterCount="1000"
               secretRequired="false"
               />

#저장후 종료
wq!

 

tomcat ajp port 설정화면
ajp port 설정

 

tomcat 의 설정은 이게 끝입니다.

다른거 건드리실 필요없습니다.

 

2.apache

apache 의 설정은 workers.properties 의 설정을 변경해줄겁니다.

 

pwd
/home/hunhee/apache2.4/conf

vi workers.properties

worker.list=lb

#worker1 설정
worker.worker1.port=8009
worker.worker1.host=192.168.111.60
worker.worker1.type=ajp13
worker.worker1.lbfactor=1

#worker2 설정
worker.worker2.port=8009
worker.worker2.host=192.168.111.200
worker.worker2.type=ajp13
worker.worker2.lbfactor=1


worker.lb.type=lb
worker.lb.balance_workers=worker1, worker2
worker.lb.sticky_session=true

 

worker.host 쪽에 tomcat 의 ip들을 각각적어주고

tomcat에 설정한 ajp port도 같게 맞춰줍시다.

ajp port를 8009로 안하셨으면 본인거에 맞춰주셔야 됩니다.

 

#주의 제글을 보고 설치하신분들은 

jk모듈 마운트가 tomcat 으로 되있을겁니다.

위 코드 worker.list=lb 로 되있으니

JkMount /* tomcatJkMount /* lb 로 변경해주셔야됩니다.

 

apache vhosts 목록
jkmount

 


 

설치 끝 검증

설치가 끝나고 검증을 해보도록 하겠습니다.

log파일중에 access_log들을 tail -f 을 걸어서 확인해보겠습니다.

윈도우 녹화로 하려고 하니 ..

양쪽화면이 안나오네요 나중에 녹화툴을 받든가 해야겠습니다.

 

tail -f localhost_access_log.2026-01-07.txt 오늘날짜의 access log를 tail -f 걸고

핸드폰으로 녹화해봤습니다.

 

tail -f access_log

 

양쪽다 번갈아가면서 잘나오고 있네요 

위의 workers.properties 에서

 

worker.worker1.lbfactor=1

worker.worker2.lbfactor=1

 

설정이 한번씩 요청을 받겠다는 말입니다.

 

 

worker.worker1.lbfactor=1

worker.worker2.lbfactor=5

이렇게 설정하면 worker2의 친구가 요청을 5번 받는다는 것입니다.

보통 실무에선 서버 스펙은 똑같게하니 lbfactor도 똑같이 구성하는게 낫겠죠?

 

다음시간에는 tomcat session clustering 에 대해서 기술해보도록 하겠습니다.

감사합니다!