apache:mod_jk

mod_jk

apache와 tomcat을 연동하기 위한 모듈

  • httpd
  • httpd-devel (APache eXtensionS? - apxs)
  • tomcat

Tomcat Connectors JK 1.2

# download
cd /usr/src
wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.49-src.tar.gz
tar zxf tomcat-connectors-1.2.49-src.tar.gz
 
# build
cd tomcat-connectors-1.2.49-src/native
./configure --with-apxs=/usr/bin/apxs # 아파치 확장모듈 위치
make && make install
 
# /etc/httpd/modules/mod_jk.so 파일 생성 확인
/etc/httpd/conf.modules.d/00-base.conf
  1. ...
  2. LoadModule jk_module modules/mod_jk.so
/etc/httpd/conf.modules.d/mod_jk.conf
  1. <IfModule mod_jk.c>
  2. JkWorkersFile conf/workers.properties
  3. JkShmFile run/mod_jk.shm
  4. JkLogFile logs/mod_jk.log
  5. JkLogLevel info
  6. JkLogStampFormat "[%y-%m-%d %H:%M:%S.%Q]"
  7. </IfModule>
  • JkWorkserFile: 파일 경로
  • JkShmFile: 공유 메모리 파일 위치. (SeLinux 사용시 run 경로로 설정 필요)
  • JkLogFile: 로그 생성 경로 - 로테이션가능
  • JkLogLevel: 로그 레벨 설정(info/error/debug)
  • JkLogStampFormat: 로그 파일 이름

Virtual Host

/etc/httpd/conf.module.d/httpd-vhost.conf
  1. <VirtualHost *:80>
  2. ServerName localhost
  3.  
  4. DocumentRoot "/srv/webapps/ROOT"
  5.  
  6. <Directory "/srv/webapps/ROOT">
  7. AllowOverride None
  8. Require all granted
  9. </Directory>
  10. DirectoryIndex index.html index.jsp
  11.  
  12. JkMount /*.jsp tomcat
  13. JkMount /*.json tomcat
  14. JkMount /*.xml tomcat
  15. JkMount /*.do tomcat
  16. </VirtualHost>
  • ServerName: IP 또는 도메인
  • DocumentRoot: Root 경로
  • Directory: 디렉토리 접근 방식
  • DirectoryIndex: 처음 접근시 불러오는 파일
  • JkMount: 해당하는 요청시 톰캣으로 포워딩

Workers

/etc/httpd/conf/workers.properties
  1. worker.list=tomcat
  2. worker.tomcat.port=8009
  3. worker.tomcat.host=localhost
  4. worker.tomcat.type=ajp13
  5. worker.tomcat.lbfactor=1
  • worker
    • list: 인스턴스명
    • instnace-name: 해당 인스턴스 설정
      • port: Apache와 Tomcat이 통신하기 위한 포트. 톰캣 설정과 일치. 기본 8009
      • host: 서버 위치
      • type: 통신하기 위한 프로토콜. ajp13
      • lbfactor: 로드밸런싱시 가중치.
      • secret: 보안키

다수 운용

Permission

/etc/httpd/conf/httpd.conf
  1. ...
  2. User tomcat #apache
  3. Group tomcat #apache
.conf/server.xml
  1. <!-- Define an AJP 1.3 Connector on port 8009 -->
  2. <Connector protocol="ACP/1.3
  3. address="::1"
  4. port="8009"
  5. secretRequired="false"
  6. redirectPort="8443" />
  • secretRequired: 기본값 true. SSL 응답 요청
  • address: 수신 대기 주소. 0.0.0.0(IPv4)나 ::1(IPv6. 4포함) 적용
  • secret: 기본값 null. Apache와 Tomcat의 보안키.
  • apache/mod_jk.txt
  • 마지막으로 수정됨: 2024/07/14 17:15
  • 저자 writer