mod_jk
apache와 tomcat을 연동하기 위한 모듈
Prerequisites
- httpd
- httpd-devel (APache eXtensionS? - apxs)
- tomcat
build & install
# 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 파일 생성 확인
module adjust
- /etc/httpd/conf.modules.d/00-base.conf
- ...
- LoadModule jk_module modules/mod_jk.so
- /etc/httpd/conf.modules.d/mod_jk.conf
- <IfModule mod_jk.c>
- JkWorkersFile conf/workers.properties
- JkShmFile run/mod_jk.shm
- JkLogFile logs/mod_jk.log
- JkLogLevel info
- JkLogStampFormat "[%y-%m-%d %H:%M:%S.%Q]"
- </IfModule>
JkWorkserFile: 파일 경로JkShmFile: 공유 메모리 파일 위치. (SeLinux 사용시 run 경로로 설정 필요)JkLogFile: 로그 생성 경로 - 로테이션가능JkLogLevel: 로그 레벨 설정(info/error/debug)JkLogStampFormat: 로그 파일 이름
Settings
Virtual Host
- /etc/httpd/conf.module.d/httpd-vhost.conf
- <VirtualHost *:80>
- ServerName localhost
- DocumentRoot "/srv/webapps/ROOT"
- <Directory "/srv/webapps/ROOT">
- AllowOverride None
- Require all granted
- </Directory>
- DirectoryIndex index.html index.jsp
- JkMount /*.jsp tomcat
- JkMount /*.json tomcat
- JkMount /*.xml tomcat
- JkMount /*.do tomcat
- </VirtualHost>
ServerName: IP 또는 도메인DocumentRoot: Root 경로Directory: 디렉토리 접근 방식DirectoryIndex: 처음 접근시 불러오는 파일JkMount: 해당하는 요청시 톰캣으로 포워딩
Workers
- /etc/httpd/conf/workers.properties
- worker.list=tomcat
- worker.tomcat.port=8009
- worker.tomcat.host=localhost
- worker.tomcat.type=ajp13
- worker.tomcat.lbfactor=1
workerlist: 인스턴스명instnace-name: 해당 인스턴스 설정port: Apache와 Tomcat이 통신하기 위한 포트. 톰캣 설정과 일치. 기본 8009host: 서버 위치type: 통신하기 위한 프로토콜. ajp13lbfactor: 로드밸런싱시 가중치.secret: 보안키
Permission
- /etc/httpd/conf/httpd.conf
- ...
- User tomcat #apache
- Group tomcat #apache
Tomcat
- .conf/server.xml
- <!-- Define an AJP 1.3 Connector on port 8009 -->
- <Connector protocol="ACP/1.3
- address="::1"
- port="8009"
- secretRequired="false"
- redirectPort="8443" />
secretRequired: 기본값 true. SSL 응답 요청address: 수신 대기 주소.0.0.0.0(IPv4)나::1(IPv6. 4포함) 적용secret: 기본값 null. Apache와 Tomcat의 보안키.