[실행환경]
CentOS Linux release 7.9.2009 (Core)
openjdk version "11.0.19" 2023-04-18 LTS
Apache 2.4.6
Tomcat 10.1.11
앞서 진행한, 아파치-톰캣 연동 진행 내용에 이어지는 내용이다.
1. 톰캣 설정파일에서(server.xml)에서 포트를 변경한다.
여러개의 톰캣을 연동하기 위해서 포트를 변경해야 하고, 각 톰캣의 포트 번호를 아래와 같이 변경했다.
(기본적용 포트 번호 → ajp 8009, 셧다운포트 8005, 톰캣http포트 8080)
tomcat-test1 http 포트 8180, 셧다운 포트 8105, ajp 포트 8109
tomcat-test2 http포트 8280, 셧다운 포트 8205, ajp 포트 8209
* 포트가 겹치게 되면 정상적으로 작동하지 않음
2. mod_jk.so 모듈 사용할 수 있도록 설정하기
1) conf.d 아래에 mod_jk.conf 만들기
LoadModule jk_module modules/mod_jk.so
<ifModule jk_module>
JkWorkersFile conf.d/workers.properties
JkShmFile logs/mod_jk.shm
JkLogFile logs/mod_jk.log
JkLogLevel error
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
</ifModule>
2) workers.properties
→ balancer가 node1, node2에게 분배하는 방식
####################################################
# worker list
####################################################
worker.list=node1,node2,balancer
####################################################
# balancer
####################################################
worker.balancer.type=lb
worker.balancer.balance_workers=node1,node2
####################################################
# tomcat-test1
####################################################
worker.node1.reference=worker.template
worker.node1.host=localhost
worker.node1.port=8109
####################################################
# tomcat-test2
####################################################
worker.node2.reference=worker.template
worker.node2.host=localhost
worker.node2.port=8209
####################################################
# Worker Setting
####################################################
worker.template.type=ajp13
worker.template.socket_connect_timeout=7000
worker.template.socket_keepalive=true
worker.template.ping_mode=A
worker.template.ping_timeout=10000
worker.template.connection_pool_minsize=0
worker.template.connection_pool_timeout=600
worker.template.reply_timeout=300000
worker.template.recovery_options=3
ex2)
#worker_list
worker.list=balancer
#balancer
worker.balancer.type=lb
worker.balancer.balance_workers=tomcat1,tomcat2
worker.tomcat1.type=ajp13
worker.tomcat1.port=8109
worker.tomcat1.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.port=8209
worker.tomcat2.host=localhost
3. 가상호스트에서 특정 도메인으로 접근시, 톰캣 인스턴스에게 분배되게 설정 하기
/etc/httpd/conf.d/vhosts.conf에서 아래 내용 추가
ex1)
<VirtualHost *:80>
ServerName vhost3.hello.com
DocumentRoot /var/www/html_vhost2
ErrorLog "logs/vhost3.hello.com_error_logs"
CustomLog "logs/vhost3.hello.com_access_logs" combined
JkMount /* balancer >>>>>>>>>>>>> 이 부분이 두 톰캣 인스턴스에 분배 되게 하는 설정임
</VirtualHost>
ex2)
<VirtualHost *:80>
ServerName www1.test.com
CustomLog "|/usr/bin/rotatelogs /usr/local/src/httpd-2.4.58/logs/www1.test.com.log 3600 " combined env=!VLOG
ErrorLog "|/usr/bin/rotatelogs /usr/local/src/httpd-2.4.58/logs/www1.test.com.error 3600 "
JkMount /* balancer
</VirtualHost>
'Infra > Apache' 카테고리의 다른 글
Apache - Tomcat 멀티 인스턴스 로드밸런싱 설정(RHEL7, RHEL8) (0) | 2023.10.20 |
---|---|
Apache web Server 컴파일 설치(RHEL 7 & RHEL 8) (0) | 2023.10.17 |
Apache MPM (0) | 2023.07.24 |
아파치와 톰캣 연동(CentOS7, RHEL 7) (0) | 2023.07.19 |
apache 설치 및 이름 기반 가상호스트 사용 (0) | 2023.07.19 |