apache tomcat 연동 작업

영진·2023년 1월 15일
0

AWS

목록 보기
8/17

aws console 환경에서 두 인스턴스에 각각 apache, tomcat을 설치하여
연동해 보았다. 건던허개 apache와 tomcat이 동일한 결과가 출력된다.

내가 만든 다이어그램은 다음과 같다.

해당 아키텍쳐를 구현하였을 때 클라이언트를 public 환경에서 사용가능한 subnet에 위치하였다.
web서버와 was는 private 환경에 위치한 곳에 배치하였다.

amazon web console에 접속하여 tomcat instance를 하나 생성해주도록 한다.

https://console.aws.amazon.com/ec2 에서 tomcat instance를 생성한다.

tomcat instance의 userdata이다.

sudo yum install tomcat -y
cd /etc/tomcat/
sed -i -e '62i\    <Connector port="8010"' server.xml
sed -i -e '63i\        protocol="AJP/1.3" address="0.0.0.0" secretRequired="false"' server.xml
sed -i -e '64i\        redirectPort="8443" URIEncoding="UTF-8"' server.xml
sed -i -e '65i\        useBodyEncodingForURI="true" />' server.xml
mkdir -p /usr/share/tomcat/webapps/ROOT
echo '<h1> Hello tomcat Server </h1>' > index.html
mv index.html /usr/share/tomcat/webapps/ROOT/index.html
systemctl restart tomcat

tomcat instance를 생성하였다면 tomcat의 private ip를 기록해 둔다.
나같은 경우는 10.0.2.8 대역이였다.


기록해 두었다면 https://console.aws.amazon.com/ec2 에서 톰켓을 생성한 것과 같이 web instance를 하나 생성해준다.

web instance의 userdata는 다음과 같다.
실습을 구성할 때 tomcat ip는 임의로 수정하면 된다.

#!/bin/bash
sudo yum install httpd -y
sudo yum install httpd-devel pcre-devel -y
yum install gcc libtool -y
wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
tar zxvf tomcat-connectors-1.2.48-src.tar.gz
cd tomcat-connectors-1.2.48-src/native/
./configure --with-apxs=/usr/bin/apxs
make
make install
cd apache-2.0/
cp mod_jk.so /etc/httpd/modules/
cd /etc/httpd/conf.modules.d/
cat << EOF > mod_jk.conf
LoadModule jk_module "/etc/httpd/modules/mod_jk.so"

JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile /etc/httpd/logs/mod_jk.log

JkLogLevel info

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
EOF
cd /etc/httpd/conf
cat << EOF > workers.properties
worker.list=tomcat
worker.tomcat.port=8010
worker.tomcat.host=10.0.2.8
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1
EOF
cat << EOF > demo
LoadModule jk_module modules/mod_jk.so
<VirtualHost *:80>
        ServerName localhost
        JkMount /* tomcat
</VirtualHost>
EOF
cat demo >> httpd.conf
systemctl start httpd
systemctl enable httpd

8010포트를 통해 tomcat과 apache 간의 연결이 될 것이다.

이제 web instance의 동작을 확인한다.






curl localhost를 진행할 경우 tomcat instance에 작성하였던 "Hello tomcat Server"가 출력된 것을 확인 할 수 있다.

Web instance의 동작을 로드벨런서를 통해 확인해 보면 다음과 같이 출력된다.







Tomcat instance에서 하나의 파일을 더 생성하고 테스트를 진행한다. 우선 tomcat instance에서 cd /usr/share/tomcat/webapps/ROOT/로 접속하도록 한다.
demo라는 파일을 작성해준다.









이제 web instance 에서 접속을 시도해본다.





정상적으로 출력된 것을 확인 할 수 있다.

Web instance가 연결된 로드벨런서 뒤쪽에 demo를 입력하면 web instance와 동일한 결과물이 출력된다.

profile
I'm good at cloud computing.

0개의 댓글