본문 바로가기

Linux/Apache

Apache Tomcat의 로드밸런싱




Apache Tomcat의 Load Balancing




Apache와 Tomcat(여러대)를 설치하게 될 경우

부하를 줄이기 위해 로드밸런싱 설정을 통해 Tomcat를 통해 접속할 수 있게 설정


구축환경

CentOS 6.8

httpd 2.4.23

Tomcat 7.0.72

JDK 1.8.112

** Apache + Tomcat 2대 이상을 서버1대에 설치해도 되고 Apache 서버1대 + Tomcat 1대 + Tomcat 1대 식으로 진행해도 가능합니다.


사전작업

Apache 설치

Tomcat 설치

서버1대에 Tomcat 여러대 설치 시

Apache Tomcat 연동작업        ** 로드밸런싱의 경우 연동작업에서 커넥터 설치까지만 진행하고 아래 내용대로 진행합니다.


로드밸런싱 설정

[root@localhost ~]# vi /usr/local/apache/conf/httpd.conf

...##아래 내용 추가

LoadModule jk_module modules/mod_jk.so

...

<ifModule jk_module>

        JkWorkersFile /usr/local/apache/conf/workers.properties

        JkShmFile /usr/local/apache/logs/mod_jk.shm

        JkLogFile /usr/local/apache/logs/mod_jk.log

        JkLogLevel info

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

</ifModule>

JkMount /*.jsp loadbalancer


[root@localhost ~]# vi /usr/local/apache/conf/workers.properties    ##생성

worker.list=loadbalancer

worker.loadbalancer.type=lb

worker.loadbalancer.balanced_workers=was1, was2

worker.loadbalancer.ping_mode=I

worker.loadbalancer.ping_timeout=1000

worker.loadbalancer.sticky_session=1

worker.loadbalancer.connection_pool_timeout=20


#was1

worker.was1.port=8009

worker.was1.host=localhost

worker.was1.type=ajp13

worker.was1.lbfactor=1

worker.was1.max_packet_size=65536


#was2

worker.was2.port=18009

worker.was2.host=192.168.0.156

worker.was2.type=ajp13

worker.was2.lbfactor=1

worker.was2.max_packet_size=65536


** 이 외에 추가한다면 3번째 줄에 workers 이름을 추가하고 아래 #was3 등의 이름으로 추가한다.

workers.was1.port

여기서 was1은 각 이름이므로 tomcat 서버가 추가된다면 이름을 변경.

port의 경우는 각 톰캣이 포트를 다르게 할 경우 변경한다.

host의 경우는 해당 톰캣의 서버의 IP. 자기 자신이라면 localhost로 해도 무방하다.

여기서의 로드밸런싱 이름은 loadbalancer로 지정했는데 이는 httpd.conf 파일 내에 추가했던 JkMount /*.jsp loadbalancer와 동일하게 한다.


테스트

각 톰캣이 불러오는 jsp파일의 이름은 같게하고 경로를 다르게 지정한다.

예) Tomcat1 = /test/index.jsp

     Tomcat2 = /test2/index.jsp 등.. (물론 한 서버내에 설치한 Tomcat일 경우 지정해주고 물리적으로 다른 서버라면 상관없다.)

각 tomcat의 index.jsp 파일 내에 내용을 다르게 입력한다.

예) /test/index.jsp = tomcat1

     /test2/index.jsp = tomcat2

위와 같이 내용을 다르게 한 후 브라우저에서 localhost/index.jsp를 입력할 경우 새로고침을 할 때마다

tomcat1과 2의 내용이 번갈아가며 나타나게 된다. (부하분산)





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

Apache환경에서 SSL 사용하기 (https)  (0) 2016.09.05
Apache 컴파일 설치  (0) 2016.08.05