본문 바로가기
AWS, Infra/linux

[AWS] Apache - Tomcat 연동하기 (mod_jk)

by RoJae 2023. 3. 12.
[AWS] Apache - Tomcat 연동하기 (mod_jk)

 

  • 모든 작업은 apache 웹서버에서 작성합니다.

 

  • wget 설치
yum install wget
 
  • tomcat connector 설치
sudo wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
 
  • 압축해제
sudo tar xvfz tomcat-connectors-1.2.46-src.tar.gz
 
  • configure을 사용하여 설치하면 될 것으로 추측 (주석 설명)

 

  • apxs 경로 탐색
find / -name apxs
 
  • 설치 진행
cd /usr/share/httpd/tomcat-connectors-1.2.48-src/native
sudo ./configure --with-apx={apache apxs 경로}
 
  • 정상적으로 make 파일이 생성되었다면 make 파일로 컴파일하고, make install로 설치
sudo make && make all
 
  • centos 7 기준 완료

mod_jk 완료 사진

 

  • modules 내부 jk_mod.so 파일 확인
# 경로가, apache modules가 아니면, 옮겨주자.
find / -name jk_mod.so
 
  • https.conf 설정 (mod_jk.conf 인클루드 추가)
# 적절한 위치에 추가
LoadModule jk_module modules/mod_jk.so

# mod_jk의 설정을 위해서, 다른 파일을 include 작성
# 위에서 추가한, 모듈명과 같아야 함 (jk_module)
<IfModule jk_module>
Include conf/mod_jk.conf
</IfModule>
 
  • mod_jk.conf 작성
vi [apache_home]/conf/mod_jk.conf
 
아래처럼 작성.
<IfModule mod_jk.c>
  # workers.properties 파일의 위치를 지정
  # worker란 들어온 요청을 처리하기 위한 톰캣 인스턴스
  JkWorkersFile conf/workers.properties

  # mod_jk 로그파일 위치를 지정
  JkLogFile logs/mod_jk.log

  # 로그레벨을 지정 [debug/error/info]
  JkLogLevel info

  # 로그에 출력되는 시간 포멧을 지정
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

  # 아파치로 부터 들어오는 요청에 대해서 Url 패턴별로 workers.properties에
  # 정의한 worker에게 매핑시키는 설정을 지정
  JkMountFile conf/uriworkermap.properties
</IfModule>

 

  • Apache 재시작
service httpd restart
 
  • Apache 로그 조회
# /var/log/httpd 경로에서 로그 조회
tail -f error_log
 

 

  • 오류 발생 시

 

# SELinux 설정 변경
chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so 

# 설정적용
setenforce 0
 

 

Apache 연동의 경우
  • Apache 서버에서 ping으로 톰켓 접속 시 오류 발생.
  • tomcat에서 아파치 연동 시, 8009 포트를 사용하며 기본은 닫힘
  • 아래와 같이 설정
	# 위치 : {tomcat_home}/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" />
 

 

오류 해결법



반응형

댓글