mod_jk를 활용하여 LaodBalancer를 지정해보겠습니다.
mod_jk를 활용하는 방법은 이 글을 참고해주세요.
2024.04.03 - [OS/Linux] - Ubuntu22.04) apache, tomcat 설치 및 연동 (mod_jk)
Ubuntu22.04) apache, tomcat 설치 및 연동 (mod_jk)
이전 글은 centos7에서 연동하는 방법을 알아보았는데요! 이번에는 ubuntu 22.04에 연동하는 방법을 알아보겠습니다. ubuntu22.04에는 centos7과는 다르게 패키지로만 설치하여 빠르게 설정하겠습니다. mod
engineer1.tistory.com
2024.04.03 - [OS/Linux] - centos7) apache, tomcat 설치 및 연동 (mod_jk)
centos7) apache, tomcat 설치 및 연동 (mod_jk)
apache와 tomcat을 연동하는 방법 중 대표적인 방법은 크게 mod_jk와 mod_proxy가 있습니다. mod_jk moad_jk는 apache와 tomcat간의 연동에 특화되어 있고, 로드 밸런싱과 세션 관련 설정을 제공합니다. workers.prop
engineer1.tistory.com
mod_jk를 설정할 때 apache의 workers.properties와 httpd.conf(000-default.conf), tomcat의 server.xml에 설정을 해주었습니다.
전에는 workers.propertices에는 하나의 worker만 worker.list로 지정하여 연동하였는데
list에 lb를 지정하고 트래픽을 ip와 port를 사용하여 원하는 apache서버로 로드밸런싱이 가능합니다.
또한 mod_jk의 기능 중 jkstatus를 사용하여 로드밸런싱 테스트도 직관적으로 할 수 있습니다.
ubuntu 22.04와 centos 7을 기준으로 root계정을 사용하여 구성해보겠습니다.
1. workers.properties 설정
worker.list에 하나의 worker만 등록되어 있지만
worker의 타입을 lb로 지정하여 설정이 가능합니다.
worker.list=load_balancer # worker list등록
worker.load_balancer.type=lb # load_balancer의 타입을 lb로 지정
worker.load_balancer.balance_workers=worker1,worker2,worker3
worker.load_balancer.sticky_session=true # sticky session 지정
worker.worker1.port=18009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1 # 밸런싱 비율 설정
worker.worker2.port=28009
worker.worker2.host=localhost
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
worker.worker3.port=38009
worker.worker3.host=localhost
worker.worker3.type=ajp13
worker.worker3.lbfactor=1
listen 포트를 같게하셔도 무방하고, hosts에 지정된 alias를 사용하거나 ip를 지정하여 다른 ip의 apahce서버와도 구성이 가능합니다.
각 설정은 운영 환경에 따라 바꾸시면 되고, 직관적인 테스트를 위해 worker를 3까지 등록하겠습니다.
추가적으로 jkstatus를 사용하고 싶으시다면
worker.list=load_balancer,jkstatus # lb와 jkstatus 지정
worker.load_balancer.type=lb
worker.load_balancer.balance_workers=worker1,worker2,worker3
worker.load_balancer.sticky_session=true
worker.worker1.port=18009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
worker.worker2.port=28009
worker.worker2.host=localhost
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
worker.worker3.port=38009
worker.worker3.host=localhost
worker.worker3.type=ajp13
worker.worker3.lbfactor=1
worker.jkstatus.type=status # 타입 설정
와 같이 설정해주시면 됩니다.
2. httpd.conf(000-default.conf)
JkMount를 설정할 때 각 url에 모든 종류의 확장자에 따라 로드밸런싱이 가능하고
특정 url을 지정하여 l7에서의 로드밸런싱이 가능합니다.
이 설정 또한 운영중인 환경에 맞춰 적절한 설정이 필요하고 테스트 과정에서는 직관적으로 설정하겠습니다.
먼저 JkMount에 단일 worker만 지정되어 있으므로 바꿔줍니다.
그리고 추가적으로 jkstatus의 설정도 해줍니다.
# centos 7
LoadModule jk_module modules/mod_jk.so # 모듈 활성화
<IfModule mod_jk.c> # 모듈 설정
JkWorkersFile conf/workers.properties
JkShmFile logs/mod_jk.shm
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H :%M :%S %Y]"
JkMount /* load_balancer # workers.properties에 등록된 lb 이름 지정
JkMount /jkmanager jkstatus # <ip>/jkmanager 경로에 jkstatus 연결
<Location /jkmanager/> # mod_jk의 내장 모듈 사용
JkMount jkstatus # workers.list에 등록 된 status 이름
Order deny,allow
Deny from all
Allow from 127.0.0.1 # 밑에 추가로 접근 가능한 ip 지정 가능
</Location>
</IfModule>
# ubuntu 22.04
DocumentRoot /var/liv/tomcat9/webapps/ROOT
JkMount /* load_balancer
JkMount /jkmanager jkstatus
3. server.xml 설정
만약 lb의 workers의 포트를 모두 다르게 하였다면, server.xml에 connector의 포트도 업데이트 해야합니다.
<Connector protocol="AJP/1.3"
address="0.0.0.0"
port="18009"
redirectPort="18443"
maxParameterCount="1000"
secretRequired="false"
/>
<Connector protocol="AJP/1.3"
address="0.0.0.0"
port="28009"
redirectPort="28443"
maxParameterCount="1000"
secretRequired="false"
/>
<Connector protocol="AJP/1.3"
address="0.0.0.0"
port="38009"
redirectPort="38443"
maxParameterCount="1000"
secretRequired="false"
/>
4. status 확인
localhost/jkmanager로 접속하시면 lb의 상태를 확인할 수 있는 status 페이지가 출력됩니다.
이상 mod_jk를 이용하여 lb설정과 status 설정을 마치겠습니다.
감사합니다.
'OS > Linux' 카테고리의 다른 글
ubuntu) LEMP(nginx + php + mysql) 설치 및 연동테스트 (0) | 2024.04.08 |
---|---|
centos) LEMP(nginx + php + mysql) 설치 및 연동테스트 (0) | 2024.04.05 |
Ubuntu22.04) apache, tomcat 설치 및 연동 (mod_jk) (1) | 2024.04.03 |
centos7) apache, tomcat 설치 및 연동 (mod_jk) (2) | 2024.04.03 |
PHP 확장 모듈 컴파일 설치 도구 PHPIZE (0) | 2024.04.01 |