컴터둥이

[Linux] Apache + Tomcat 설치 및 연동 (3) - WEB/WAS 연동 본문

Linux

[Linux] Apache + Tomcat 설치 및 연동 (3) - WEB/WAS 연동

현또다 2024. 10. 30. 09:47

▶ WEB(Apache) 서버와 WAS(Tomcat) 서버를 분리해서 연동하는 이유 ? 

=> Tomcat도 웹서버 기능이 있지만, 정적/동적 데이터를 Tomcat이 모두 처리하기엔  Apache보다 느린 처리 속도를 보임

=> 정적 데이터는 WEB(Apache), 동적 데이터는 WAS(Tomcat)가 처리하여 서버의 전체적인 부하 분산 및 속도 향상 가능

 


▶ WEB - WAS 연동 

테스트 서버 IP 변경으로, 아래와 같이 진행
HJ-WEB : 192.168.111.174
HJ-WAS : 192.168.111.175

 

 

1. Tomcat Connector 소스 트리 구성 및 소스 설치 (web)

 

- Tomcat Connector는 아래의 링크에서 다운로드 가능함

https://tomcat.apache.org/download-connectors.cgi

 

Apache Tomcat® - Tomcat Connectors (mod_jk) Downloads

You must verify the integrity of the downloaded files. We provide OpenPGP signatures for every release file. This signature should be matched against the KEYS file which contains the OpenPGP keys of Tomcat's Release Managers. We also provide SHA512 checksu

tomcat.apache.org

[web] tar xvzf tomcat-connectors-1.2.50-src.tar.gz
[web] cd /root/tomcat-connectors-1.2.50-src/native
[web] ./configure --with-apxs=/appDev/apache2/bin/apxs		# [tomcat home 경로]/bin/apxs
[web] make && make install
[web] find -name "mod_jk.so"		# /appDev/apache2/modules/mod_jk.so 있는지 확인

 

configure: error: You must specify a valid --with-apxs path 에러 발생 ?

=> apxs의 경로가 잘못되었거나 perl을 찾을 수 없어서 발생하여 아래와 같이 해결 가능

# apxs 경로 확인
find / -name apxs		# configure 시 apxs의 경로와 맞는지 확인

# perl 설치 및 경로 변경
dnf install perl
vi /appDev/apache2/bin/apxs
#!/replace/with/path/to/perl/interpreter -w		----->		#!/usr/bin/perl -w로 변경

 

2. mod_jk 모듈 권한 변경 (web)

[web] chmod 755 /appDev/apache2/modules/mod_jk.so
[web] ll /appDev/apache2/modules/mod_jk.so

 

3. httpd.conf 파일 수정 (web)

- mod_jk 모듈을 사용하겠다는 구문 작성

[web] vi /appDev/apache2/conf/httpd.conf

LoadModule jk_module modules/mod_jk.so		# 추가
JkMount /* tomcat		# 아래 5번의 workerfile에 들어가는 작업자명 작성

# mod_jk Connector		# httpd-default.conf 밑에 있음
Include conf/extra/httpd-modjk.conf		# 추가

[web] /appDev/apache2/bin/apachectl graceful	# 세션 종료 없이 apache 서비스 재기동

 

4) mod_jk conf 파일 생성 (web)

[web] vi /appDev/apache2/conf/extra/httpd_modjk.conf

<IfModule jk_module>
	JkWorkersFile conf/extra/workers.properties	# Workersfile 경로 지정
	JkShmFile logs/mod_jk.shm
	JkLogFile logs/mod_jk.log		# mod_jk 로그파일 위치 지정
	JkLogLevel info					# 로그 레벨 지정 [debug / error / info]
	JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "		# 로그에 출력되는 시간 포맷을 지정
</IfModule>

 

5. workers.properties 파일 생성 (web)

[web] vi /appDev/apache2/conf/extra/workers.properties

worker.list=tomcat		# mod_jk가 사용할 모든 작업자리스트 기술(콤마로 구분)
worker.tomcat.type=ajp13	# type은 톰캣과 통신할 프로토콜을 정의(ajp12, ajp13, ajp14, jni, lb), ajp13이 가장 많이 사용됨
worker.tomcat.host=192.168.111.175		# tomcat ip
worker.tomcat.port=8009	# tomcat과 통신할 포트

 

6) Tomcat Server.xml 파일 수정 후 재기동 (WAS) 

- AJP Port, Secret Key 비활성화, Redirect Port 설정

[was] vi /app/tomcat9/conf/server.xml

    <!-- Define an AJP 1.3 Connector on port 8009 -->

    <Connector protocol="AJP/1.3"
               address="0.0.0.0" secretRequired="false"
               port="8009"
               redirectPort="8443" />
                 
[was] /app/tomcat9/bin/shutdown.sh -> startup.sh	# tomcat 서비스 재기동

 

7) WEB - WAS 연동 확인

- web 서버 IP로 접속했을 때 was 서버의 app 화면이 보이면 성공 !!