본문 바로가기
리눅스(Linux)/Red Hat

[RHEL 9] 아파치 웹 서버와 톰캣 연동하기

by 연구자 공학코드 2023. 7. 31.

공지사항

  1. 제가 운영하는 네이버 카페 개발자 커뮤니티 코어큐브(https://cafe.naver.com/ewsncube)에 가입하시면 컴퓨터 관련 학습 자료와 질의응답을 제공받으실 수 있습니다.

728x90
반응형

설치가능한 패키지 확인

아래의 명령어를 입력하여 'mod_jk(톰캣 커넥터, Tomcat Connectors)' 패키지를 RHEL(Red Hat Enterprise Linux)에 설치할 수 있는지 확인한다.

yum list | grep mod_jk

설치 가능한 패키지 목록 확인 화면

톰캣 커넥터 모듈 설치

아래의 명령어를 입력하여 'mod_jk' 패키지를 설치한다.

yum install mod_jk

패키지가 잘 설치된 화면

아래의 명령어를 입력하여 'mod_jk' 모듈이 아파치 웹 서버(Apache Web Server, HTTPD)에 잘 설치되었는지 확인한다.

ls /etc/httpd/modules/ | grep mod_jk

모듈이 잘 설치된 화면

톰캣 커넥터 등록

아래의 명령어를 입력하여 설정 파일을 복사한다.

cp /etc/httpd/conf.d/mod_jk.conf.sample /etc/httpd/conf.d/mod_jk.conf

복사가 잘 된 화면

아래의 명령어를 입력하여 톰캣 커넥터 정보를 수정한다.

vi /etc/httpd/conf.d/mod_jk.conf

수정 화면에 진입하는 화면

아래의 정보를 참고하여 상화엥 맞게 톰캣 커넥터 정보를 등록한다.

# Load mod_jk module
# Specify the filename of the mod_jk lib
LoadModule jk_module modules/mod_jk.so

# Where to find workers.properties
JkWorkersFile conf.d/workers.properties

# Where to put jk logs
JkLogFile logs/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

# Select the log format
JkLogStampFormat  "[%a %b %d %H:%M:%S %Y]"

# JkOptions indicates to send SSL KEY SIZE
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat
JkRequestLogFormat "%w %V %T"

# Mount your applications
# JkMount /application/* loadbalancer

# You can use external file for mount points.
# It will be checked for updates each 60 seconds.
# The format of the file is: /url=worker
# /examples/*=loadbalancer
JkMountFile conf.d/uriworkermap.properties

# Add shared memory.
# This directive is present with 1.2.10 and
# later versions of mod_jk, and is needed for
# for load balancing to work properly
JkShmFile /var/cache/httpd/mod_jk/jk.shm

톰캣 커넥터 정보를 입력한 화면

톰캣 등록

아래의 명령어를 입력하여 설정을 복사한다.

cp /etc/httpd/conf.d/workers.properties.sample /etc/httpd/conf.d/workers.properties

잘 복사된 화면

아래의 명령어를 입력하여 아파치 웹 서버에 톰캣 정보를 등록한다.

vi /etc/httpd/conf.d/workers.properties

수정 화면에  진입하는 화면

아래의 내용을 참고하여 상황에 맞게 톰캣 정보를 등록한다.

# An entry that lists all the workers defined
#worker.list=worker1,worker2
worker.list=worker1

# Entries that define the host and port associated with these workers
worker.worker1.host=127.0.0.1
worker.worker1.port=8009
worker.worker1.type=ajp13

#worker.worker2.host=IP_TO_SET_2
#worker.worker2.port=AJP_PORT_2
#worker.worker2.type=ajp13

톰캣 정보를 입력한 화면

URI 등록

아래의 명령어를 입력하여 설정 파일을 복사한다.

cp /etc/httpd/conf.d/uriworkermap.properties.sample /etc/httpd/conf.d/uriworkermap.properties

잘 복사된 화면

아래의 명령어를 입력하여 아파치 웹 서버가 톰캣으로 넘겨줄 URI 정보를 입력한다.

vi /etc/httpd/conf.d/uriworkermap.properties

수정 화면으로 진입하는 화면

아래의 내용을 참고하여 상황에 맞게 URI 정보를 입력한다.

# Mapping test
#/testapp1=worker1
#/testapp1/*=worker1
#/testapp2=worker2
#/testapp2/*=worker2
/*=worker1

URI 정보를 입력한 화면

톰캣 커넥터 등록

아래의 명령어를 입력하여 호스트 정보를 수정한다.

vi /etc/httpd/conf.d/ssl.conf

수정하는 화면에 진입하는 화면

아래의 내용을 참고하여 어떤 HTTP 요청일 때 톰캣으로 넘겨줄지를 정한다.

<VirtualHost *:443>
...
  JkMount /* worker1
  JkMount / worker1
</VirtualHost>

호스트별 연결할 톰캣 커넥터 정보를 입력한 화면

톰캣 커넥터 생성

아래의 명령어를 입력하여 톰캣 커넥터를 설정한다.

vi /opt/tomcat/conf/server.xml

톰캣 서버 설정 화면에 진입하는 명령어

아래의 내용과 사진을 참고하여 톰캣 커넥터를 생성한다.

<Connector protocol="AJP/1.3"
               address="127.0.0.1"
               secretRequired="false"
               port="8009"
               redirectPort="8080"
               maxParameterCount="1000"
               />

톰캣 커넥터가 설정된 화면

권한 설정

아래의 명령어를 입력하여 톰캣 커넥터 연결 권한을 설정한다.

chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so

SELinux 설정

아래의 명령어를 입력하여 아파치 웹 서버가 네트워크 연결을 사용할 수 있도록 설정한다.

setsebool -P httpd_can_network_connect=1

아파치 웹 서버의 네트워크 연결 권한을 부여한 화면

아파치 재시작

아래의 명령어를 입력하여 위에서 수정한 설정이 반영되도록 아파치 웹 서버를 재시작한다.

systemctl restart httpd

아파치 재시작 명령어

톰캣 재시작

아래의 명령어를 입력하여 위에서 수정한 설정이 반영되도록 톰캣을 재시작한다.

systemctl restart tomcat

톰캣 재시작 명령어

참고문서

  1. "아파치 웹 서버(apache httpd) 와 톰캣 연동하기 - tomcat connector(mod_jk) , reverse proxy(mod_proxy)", lesstif. @원문보기
  2. "Chapter 2. Apache Tomcat Connector (mod_jk)", 레드햇 고객 포털. @원문보기
  3. "How to install mod_jk and mod_cluster module for RHEL 7 Apache httpd?", 레드햇 고객 포털, 2022년 9월 16일. @원문보기
  4. "mod_jk versions supported by Red Hat", 레드햇 고객 포털, 2023년 4월 30일. @원문보기
  5. "Tomcat Connectors (mod_jk) Downloads", 아파치 톰캣 공식 홈페이지. @원문보기
  6. "[RHEL 9] 아파치 웹 서버 설치", 공학코드, 2023년 7월 26일. @원문보기
  7. "[RHEL 9.2] 톰캣(Tomcat) 설치", 공학코드, 2023년 7월 30일. @원문보기

 

728x90
반응형

댓글