-
Apache 2.4.6 / Tomcat 9.0.31 설치
우선 아래 selinux를 해제 해주시고 firewalld 중지 시켜줍니다. (사용하실분은 정책 넣어주세요.)
# firewalld 중지
systemctl stop firewalld
systemctl disabled firewalld
# selinux 중지
setenforce 0
vi /etc/sysconfig/selinux
SELINUX=disabled
아래 코드를 입력하여 Apache 2.4.6 버전과 tomcat-connector를 설치 해줍니다.
yum install httpd httpd-devel gcc gcc-c++
# tomcat-connector 설치
wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz
tar zxvf tomcat-connectors-1.2.46-src.tar.gz
cd tomcat-connectors-1.2.46-src/native/
./configure --with-apxs=/bin/apxs
make
make install
## /usr/lib64/httpd/modules/mod_jk.so 파일이 존재하지 않을 경우 아래 내용 실행
cp -p mod_jk.so /usr/lib64/httpd/modules/mod_jk.so
chmod 755 /usr/lib64/httpd/modules/mod_jk.so
아래 코드를 입력하여 jdk와 tomcat 9.0.31 설치 해줍니다.
# JDK 설치
yum -y update
yum install java-1.8.0-openjdk-devel.x86_64
# JDK 환경 변수 설정
vi /etc/profile
# 맨 아래에 내용 작성
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
:wq
# 설정 내용 적용
source /etc/profile
# 1.8.0 으로 재대로 출력 되는지 확인
java -version
# tomcat 9.0.31 설치
wget http://mirror.navercorp.com/apache/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz
tar zxvf apache-tomcat-9.0.31.tar.gz
mv apache-tomcat-9.0.31 /usr/local/tomcat9
-
Apache-Tomcat 로드밸런싱 설정
- 1. Apache 설정
아래 설정은 URL에 .jsp로 끝나는 모든것은 loadbalancer 를 사용하도록 합니다. loadbalancer는 사용자 임의로 정할 수 있습니다. (파일 경로 : /etc/httpd/conf/httpd.conf )
LoadModule jk_module /usr/lib64/httpd/modules/mod_jk.so
<IfModule jk_module>
JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkMount /*.jsp loadbalancer
</IfModule>
worker.list로 로드밸런싱을 사용할 tomcat을 묶어줍니다. 위의 /*.jsp 뒤에 사용한 이름을 작성해주어야 합니다.
host는 tomcat ip를 적고 port는 ajp를 사용할 포트를 정해 줍니다. 임의로 설정 가능 합니다.
lbfactor는 로드밸런싱을 얼마나 할지를 정하는데, 모두 1로 정하면 라운드로빈(roundrobin) 방식 으로 로드 밸런싱되며 각각의 톰캣별로 로드밸런싱할 비율을 정해줄 수 있습니다. (파일 경로 : /etc/httpd/conf/httpd.confworkers.properties )
worker.list=loadbalancer
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=worker1,worker2
worker.loadbalancer.sticky_session=1
worker.worker1.type=ajp13
worker.worker1.host=192.168.0.10
worker.worker1.port=8010
worker.worker1.lbfactor=1
worker.worker2.type=ajp13
worker.worker2.host=192.168.0.11
worker.worker2.port=9010
worker.worker2.lbfactor=1
이것으로 apache 설정은 모두 종료 되었으니 systemctl restart httpd 입력하여 옵션을 적용 시켜주세요.
- 2. tomcat 설정
vi /usr/local/tomcat9/conf/server.xml 후 아래와 같이 설정 해줍니다. 저의 경우 apache 에서 설정한대로 192.168.0.10은 8010, 192.168.0.11은 9010 포트를 사용해야하므로 각 서버에 맞게 포트를 할당 합니다.
또한 address="0.0.0.0" 와 SSL설정을 하지 않을것이므로 secretRequired="false" 을 넣었습니다. (tomcat 최신 버전에만 해당 합니다.)
이후 /usr/local/tomcat9/bin/startup.sh을 입력하여 톰캣 실행 후 http://[apache ip]/index.jsp 로 접근하여 로드 밸런싱을 확인 하시면 되고, 저는 apache 설정에서 tomcat 을 모두 lbfactor=1을 주었으므로 라운드로빈 방식으로 동작하게 되어 엔터를 한번 칠때마다 아래 이미지처럼 번갈아가며 출력 됩니다.
로드밸런싱 확인 시 각 서버별로 /usr/local/tomcat9/webapps/ROOT 디렉토리에 jsp 파일을 조금씩 다르게 설정하여 확인하시는게 편합니다.