mod-jk로 Ubuntu22.04.2에서 아파치 톰캣 연동하기

Simcurity·2023년 3월 24일
1
post-thumbnail

Ubuntu 22.04.2 LTS 서버 버전에서 웹서버인 아파치와 WAS인 톰캣을 연동해보겠습니다.

STEP 1. 아파치 설치

apt-get upgrade
apt-get install apache2

입력하여 아파치를 설치합니다.
설치 후, 아파치 상태 확인

systemctl status apache2

Active에 active(running)이라고 초록색으로 표시가 되었다면 현재 기동중이라는 의미입니다.
그러면, 로컬호스트에서 해당 우분투 ip로 접속 시 다음과 같이 보여집니다.

여기까지 되었다면 아파치는 정상적으로 설치되어 기동 중입니다.

STEP 2. 톰캣 설치

apt-get install tomcat9

입력하여 톰캣을 설치한다.
설치 후, 톰캣 상태 확인

systemctl status tomcat9


마찬가지로 톰캣도 정삭정으로 작동중이라고 표시됩니다.
그러면, 해당 우분투 서버 ip:8080(아직 아파치 서버와 연동하지 않았으므로 포트번호를 붙여야 합니다)으로 접속 시 다음과 같은 화면이 나타납니다.

It works ! 라는 문구가 떠 있다면 정삭적으로 기동 중이라는 뜻입니다.

STEP 3. 연동 모듈 설치(mod-jk)

그러면 이제 WEB서버인 apache와 WAS서버인 tomcat을 연동을 해보겠습니다.
연동을 위해선 추가 패키지 설치가 필요합니다.

apt-get install libapache2-mod-jk

libapache2-mod-jk 패키지는 아파치와 톰캣을 연동시키는 하나의 모듈입니다.
해당 패키지를 설치하면 /etc/libapache2-mod-jk/ 경로에 workers.properties 파일과 httpd-jk.conf심볼릭링크 파일이 생깁니다.

workers.properties파일은 아파치와 톰캣사이에 연동과정에서 전달하는 worker 즉, 일하는 자를 정하는 파일이고 httpd-jk.conf파일은 링크가 아파치 모듈 중 jk.conf라는 파일로 이어지는데 이 파일은 workers.properties의 경로와 로깅 경로를 지정하는 파일입니다.

STEP 4-1. 연동 설정 (workers.properties)

workers.properties 파일은 vi 편집기로 엽니다.

workers.tomcat_home=/ust/share/tomcat8

이 부분을 tomcat의 설치 경로로 변경해줍니다.
저 같은 경우는 /usr/share/tomcat9으로 변경했습니다.

workers.java_home=/usr/lib/jvm/default-java

이 부분은 openjdk 설치 경로를 입력합니다. 보통 default-java가 심볼릭 링크로 openjdk를 링크해주니 가리키지 않고 있을때만 고쳐줍니다.
만약 JAVA가 설치되어있지 않다면 apt-get install default-jdk로 설치합니다.

이 부분을 보시면 worker.list는 worker의 이름 목록을 나타냅니다. 여러개를 설정하여 로드밸런싱을 수행할 수도 있지만 저는 연동이 목적이므로 추가하진 않았습니다.

STEP 4-2. 연동 설정 (000-default.conf)

vi /etc/apache2/sites-available/000-default.conf

입력하여 vi 편집기를 엽니다.
아파치 소스 ROOT파일인 DocumentRoot /var/www/html에 앞에 #을 붙여 주석처리를 하고

DocumentRoot /var/lib/tomcat9/webapps/ROOT
JkMount /* ajp13_worker

새로운 소스 경로와 worker를 지정해줍니다.

STEP 4-3. 연동 설정 (server.xml)

vi /etc/tomcat9/server.xml

입력하여 vi 편집기를 엽니다.
그러면 톰캣 서버 연동 설정들이 쭈욱 나올텐데

<!--
<Connector protocol="AJP/1.3"
		   address="::1"
           port="8009"
           redirectport="8443" /> -->

부분을 주석해제하고 다음과 같이 수정합니다.

<Connector protocol="AJP/1.3"
		   address="0.0.0.0"
           port="8009"
           redirectport="8443"  
           secretRequired="false" />

추가한 secretReauired는 톰캣 8.5버전부터 생긴 보안 기능을 사용하지 않는다는 의미입니다.
secretRequired는 id와 password를 받아 연결하거나 아니면 기능을 꺼야 AJP커넥터를 이용할 수 있습니다.

STEP 5. 연동 확인 (마무리)

service apache2 restart
service tomcat9 restart

코드로 아파치와 톰캣을 재시작한 후 호스트에서 우분투 서버의 ip만 입력해도 tomcat서버가 나오는 것을 확인할 수 있습니다.

이제, 정적인 html,css 파일 뿐 만이 아니라 동적인 WAS파일도 홈페이지에 나타낼 수 있게 되었습니다.

0개의 댓글