본문 바로가기
OS/Linux

Web - Was Mod_jk 연동

by BTC_물콩 2023. 6. 7.

베 하 ~ 콩순이들 BTC_물콩입니다.

오늘 진행해 볼 내용은 지난시간 mod_proxy_ajp에 이어 mod_jk 연동입니다 !!

이미 다들 잘 아시겠지만 AJP 개념을 한번 더 확인하고 가겠습니다 !!

 

AJP란 ?

✔️ Web Server에서 받은 요청을 Was로 전달해주는 “Protocol”

✔️ Web과 Was 사이의 효율적인 통신을 위해 개발되었으며 HTTP 프로토콜을 사용하는 것보다 더 가볍고 빠르게 동작하여 성능 향상

✔️ Apache HTTP Server, Apache Tomcat, 웹스피어, 웹로직, JBOSS, JEUS 등 다양한 Was에서 지원

✔️ AJP 통신을 통해 Web과 Was 간의 부하 분산이 가능하며 웹 애플리케이션의 성능 향상

 

그렇다면 AJP 통신 방법 중 하나인 mod_jk란 무엇일까요 ?!

 

Mod_jk란 ?

✔️ Apache 웹 서버와 AJP 프로토콜을 이용하는 WAS간의 연동을 도와주는 아파치 모듈

✔️ 아파치 HTTP 서버의 모듈로서 Web과 WAS 사이의 통신을 관리

✔️ 다양한 WAS에서 사용할 수 있으며 Apache Tomcat과의 연동이 가장 일반적

✔️ Apache 웹 서버와 Tomcat 사이의 연결을 설정하고, AJP 프로토콜을 통해 데이터를 주고받는 역할을 하며 이를 통해 Apache 웹 서버는 정적인 콘텐츠를 처리하고 Tomcat은 동적인 콘텐츠를 처리하여 웹 애플리케이션을 실행할 수 있음

 

이제 Web (Apache) , Was (Tomcat)를 mod_jk를 통해 연동시켜 보겠습니다 !!

 

[실습환경]

Amazon Linux2, t2.micro

연동 후 web 접속시 → web의 기본 화면

연동 후 was 접속시 → was의 기본 화면

 

[Web(Apache) 설치]

yum install -y httpd
echo -e '
This is Apache Main page
' >> /var/www/html/index.html
systemctl start httpd
systemctl status httpd
curl localhost

Apache 설치 확인

 

[Was(Tomcat) 설치]

yum update -y
yum install -y java-11-amazon-corretto.x86_64

cd /etc
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.75/bin/apache-tomcat-9.0.75.tar.gz
tar xfz apache-tomcat-9.0.75.tar.gz
mkdir /etc/tomcat
mv apache-tomcat-9.0.75/* /etc/tomcat

echo "export CATALINA_HOME=/etc/tomcat" >> /root/.bashrc
echo "export JAVA_HOME=/usr/lib/jvm/java-11-amazon-corretto.x86_64"/bin/java >> /root/.bashrc
source /root/.bashrc

cd /etc/tomcat/webapps/ROOTcd /etc/tomcat/webapps/ROOT
echo -e 'This is the index.jsp page' > index.jsp

cat << EOF > /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=network.target

[Service]
Type=forking
User=root
Group=root

Environment="JAVA_HOME=/usr/lib/jvm/java-11-amazon-corretto.x86_64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/etc/tomcat"
Environment="CATALINA_HOME=/etc/tomcat"
Environment="CATALINA_PID=/etc/tomcat/temp/tomcat.pid"

ExecStart=/etc/tomcat/bin/startup.sh
ExecStop=/etc/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl start tomcat
systemctl status tomcat
curl localhost:8080

Tomcat 설치 확인

 

[Web(Apache) - Was(Tomcat) 연동]

1. Web 설정

# tomcat connector 설치
cd /root
wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz --no-check-certificate
tar xvfz tomcat-connectors-1.2.48-src.tar.gz

cd /root/tomcat-connectors-1.2.48-src/native
./buildconf.sh
./configure --with-apxs=/usr/bin/apxs
make && make install
chmod 755 /usr/lib64/httpd/modules/mod_jk.so

vim /etc/httpd/conf/httpd.conf
---
LoadModule jk_module modules/mod_jk.so
Include conf/extra/mod_jk.conf
---

 

mkdir /etc/httpd/conf/extra
---
<IfModule mod_jk.c>
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkShmFile logs/mod_jk.shm
JkMount /index.jsp.*  worker1
</IfModule>
--

 

vim /etc/httpd/conf/workers.properties
---
worker.list=worker1,worker2

worker.worker1.type=ajp13
worker.worker1.host=Was 내부 IP
worker.worker1.port=8009

worker.worker2.type=ajp13
worker.worker2.host=Was 내부 IP
worker.worker2.port=8009
worker.worker2.mount=/index.jsp
---

이때 worker라는 친구가 경로를 담당하고 있습니다 !!!

그래서 worker2라는 친구를 생성한 후 /index.jsp 경로로 들어갔을때만 tomcat page가 뜨도록 설정해 주었습니다 !

 

2. .Was 설정

vim /etc/tomcat/conf/server.xml
--
141 line에 jvmRoute="worker1" 추가
connect protocol ajp, 8009.포트 주석 제거
---

jvmRoute="worker1" 추가
해당 내용 주석 제거

systemctl restart tomcat -> was에서
systemctl restart httpd -> web에서

Web에서 연동 변경 사항 확인

curl lcoalhost 확인 내용
curl localhost/index.jsp 확인 내용

 

오늘은 .. 여기까지 ~.~

유익한 시간이었길 바랍니다 !!

다음 시간에 만나요 안녕 ~~

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

[Linux]시스템 로그와 모니터링 이해하기  (0) 2023.06.12
[Linux] Apache Nifi 사용법  (0) 2023.06.07
Mod_proxy_ajp를 통한 web-was 연동  (0) 2023.05.31
[Linux]inode 이해하기  (0) 2023.05.29
리눅스 Log관리는 필수! Logrotate  (1) 2023.05.19

댓글