본문 바로가기

관리 메뉴

Apache 로드밸런싱 간편 설정 본문

Linux

Apache 로드밸런싱 간편 설정

SaintsP 2019. 10. 8. 15:34

Centos 7에서 Apache와 tomcat 여러대를 활용한 로드밸런싱 설정 방법입니다.


http-devel, tomcat, tomcat-connectors(mod_jk) 를 먼저 설치한 후 아래 설정대로 설정하면 로드밸런싱이 설정 됩니다. 




1. 아파치 httpd.conf 설정(%APACHE_HOME%/conf/httpd.conf) 변경


httpd.conf를 열어서 마지막에 아래 두 줄을 추가해줍니다.


1
2
LoadModule jk_module modules/mod_jk.so
include conf/mod_jk.conf
cs




2. mod_jk.conf 생성(%APACHE_HOME%/conf/mod_jk.conf)


%APACHE_HOME%/conf/ 위치에 위에서 설정한 파일 이름인 mod_jk.conf 파일을 생성하여 다음의 내용을 입력합니다.



1
2
3
4
5
6
<virtualhost *:80>
ServerName localhost
JkMount /* load_balancer
</virtualhost>
 
JkWorkersFile conf/workers.properties
cs




3. workers.properties 설정


마찬가지로 %APACHE_HOME%/conf/ 위치에 위에서 설정한 파일 이름인 workers.properties  파일을 생성하여 다음의 내용을 입력합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
worker.list=load_balancer
 
worker.load_balancer.type=lb
worker.load_balancer.balance_workers=tc01,tc02
 
worker.tc01.type=ajp13
worker.tc01.host=localhost
worker.tc01.port=18009
worker.tc01.lbfactor=1
 
worker.tc02.type=ajp13
worker.tc02.host=localhost
worker.tc02.port=28009
worker.tc02.lbfactor=1
cs


여기서 빨간색으로 표시한 부분들을 톰캣 server.xml 에서 설정해주시면 됩니다. 




4. 각각 톰캣의 server.xml 설정 (%TOMCAT_HOME%/conf/server.xml)


1) AJP 포트를 workers.properties에 설정한 포트(18009, 28009)로 변경


- 첫번째 톰캣의 server.xml

<Connector port="18009" protocol="AJP/1.3" redirectPort="18443" />


- 두번째 톰캣의 server.xml

<Connector port="28009" protocol="AJP/1.3" redirectPort="28443" />


2) Engins에 workers.properties의 worker명(tc01, tc02)과 같은 jvmRoute 값 추가


- 첫번째 톰캣의 server.xml

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tc01">


- 두번째 톰캣의 server.xml

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tc02">




5. 톰캣을 동시에 실행 시킨 후 로드밸런싱 테스트 




테스트를 진행해보면 톰캣 2개에 로드밸런싱이 되는 것을 확인 할 수 있습니다.




+ jkmanager 설정 방법



1. mod_jk.conf 수정


1
2
3
4
5
6
7
8
9
10
11
12
13
14
<virtualhost *:80>
ServerName localhost
JkMount /* load_balancer
JkMount /jkmanager/* jkstatus 
</virtualhost>
 
JkWorkersFile conf/workers.properties
 
<Location /status/>
    JkMount statusmanager
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1 # 접속 허용 IP 추가
</Location>
cs


빨간 내용 추가



2. workers.properties 수정(해당 문서 제일 아래에 옵션 추가)


1
2
worker.list=jkstatus
worker.jkstatus.type=status
cs



3. apache 재시작 후 서버IP/jkmanager/ 접속 확인



Comments