#. mod_jk 설정 파일 샘플
수정 날짜 : 2023년 03월 23일
#. 참고 글
(연동 가이드)
https://ktdsoss.tistory.com/152
https://knight76.tistory.com/entry/modjk%EC%9D%98-workersproperties-%EC%84%A4%EB%AA%85
(로드밸런싱 설정)
https://chanchan-father.tistory.com/769
https://tomcat.apache.org/connectors-doc/reference/workers.html
https://www.epari.net/vlink/b/cd
https://waspro.tistory.com/288
(jboss/wildfly node name 관련)
(socket_timeout 관련)
https://mobicon.tistory.com/245
https://wwwnghks.tistory.com/44
https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=blue_0227&logNo=130095949447&parentCategoryNo=48&viewDate=¤tPage=1&listtype=0
(연동 지연 발생)
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=aumjs&logNo=221137814168
(그 외 각종 workers.properties 옵션 관련)
https://mungpack.tistory.com/entry/workersproperties-%EC%98%B5%EC%85%98-%EB%82%B4%EC%9A%A9
#. 테스트 환경
Apache 2.4.54
WildFly 23.0.2, 26.1.2
JBoss 7.4.*
#. mod_jk 다운로드
https://tomcat.apache.org/download-connectors.cgi
#. mod_jk 모듈 컴파일
해당 작업 진행하기 전에 Apache 서버가 설치되어 있어야 한다.
다운로드 받은 mod_jk connector 파일을 설치 대상 서버에 업로드 후 압축 해제한다.
아래 절차대로 mod_jk 모듈 컴파일을 진행한다.
Apache 서버의 modules 디렉토리 내에 mod_jk.so 파일이 생성되었다면 성공.
cd .../tomcat-connectors-1.2.48-src/native
./configure --with-apxs={APACHE_HOME_DIRECTORY}/bin/apxs
make
make install
cd {APACHE_HOME_DIRECTORY}/modules
ls -al mod_jk.so
#. mod_jk 설정 - httpd.conf 수정
Apache 서버 기동 시 mod_jk.so 모듈이 load 되도록 설정해야 한다.
httpd.conf 파일에 아래 내용을 추가한다.
Include conf/mod_jk.conf
#. mod_jk 설정 - mod_jk.conf 수정
mod_jk.conf 파일에 아래와 같이 LoadModule 내용이 작성되어 있다.
이 외에도, WAS서버 연동 설정 외의 mod_jk 자체 관련 설정은 모두 해당 파일에 작성되어 있다.
LoadModule jk_module modules/mod_jk.so
mod_jk 로그 관련 설정을 수정해준다.
(로그레벨)
JkLogLevel info
(mod_jk 로그 경로 - modjk 로그도 rotatelogs로 로테이션 가능)
JkLogFile "||{APACHE_HOME}/bin/rotatelogs logs/mod_jk.log_%Y%m%d 86400 +540"
#. mod_jk 설정 - workers.properties 수정
여러 개의 node를 하나의 worker로 묶는 방식이다.
wildfly/jboss와 연동 시, node의 이름은 정해진 이름 대로 설정해야 한다.
jboss.node.name 의 value 값으로
node 이름을 설정해야 한다.
(standalone 모드 예시)
(Domain 모드 예시 - host_name:server_name 순으로 적혀있다)
(Domain 모드에서의 jboss.node.name 규칙)
Host 이름 : slave
Server 인스턴스 이름 : m1
jboss.node.name : Host 이름:Server 인스턴스 이름 (slave:m1)
(workers.properties 설정 예시)
connection_pool_minsize, connection_pool_size 옵션의 경우
Event MPM 사용 기준으로 ThreadsPerChild 옵션값과 동일하게 세팅해야 한다.
(ThreadsPerChild 옵션의 default 값은 25 이다)
# Define list of workers that will be used
# for mapping requests
# The configuration directives are valid
# for the mod_jk version 1.2.18 and later
#----------------------------------------------------------
####################
#01. worker templates
####################
worker.template.type=ajp13
worker.template.lbfactor=1
worker.template.socket_timeout=300
worker.template.reply_timeout=300000
worker.template.retries=0
worker.template.ping_mode=A
worker.template.recovery_options=3
worker.template.connection_pool_minsize=25
worker.template.connection_pool_size=25
#----------------------------------------------------------
####################
#02. worker list
####################
#worker list
worker.list=jkstatus,ehc
#worker jkstatus
worker.jkstatus.type=status
#worker ehc
worker.ehc.balance_workers=server1,server2
worker.ehc.type=lb
#----------------------------------------------------------
####################
#03. node list
####################
#node1 (jboss standalone mode example)
worker.server1.reference=worker.template
worker.server1.host=1.1.1.1
worker.server1.port=7010
#node2 (jboss domain mode example)
worker.slave:m1.reference=worker.template
worker.slave:m1.host=1.1.1.1
worker.slave:m1.port=7020
#----------------------------------------------------------
#. mod_jk 설정 - uriworkermap.properties 수정
WAS서버와 연동 시, JkMount로 URL을 구분한다.
URL 내에 특정 문자열 포함 시, 해당 요청은 WAS 서버에서 처리하게 된다.
앞서 workers.properties 에서 설정한 worker가
특정 URL 패턴을 처리하도록 설정한다.
# Simple worker configuration file
# Mount the Servlet context to the ajp13 worker
#/jmx-console=ajp13
#/jmx-console/*=ajp13
#/web-console=ajp13
#/web-console/*=ajp13
#jkstatus
/jkstatus=jkstatus
/jkstatus/*=jkstatus
#jsp url turn to ajp
/*.jsp=ehc
/resources/*=ehc
https 로 들어오는 요청에 대해서는
extra/httpd-ssl.conf 파일에 jkmount 설정을 별도로 해야 한다.
uriworkers.properties 파일에 작성할 때와 문법이 다르다.
JkMount 키워드를 앞에 작성해야 한다.
#. 특정 URL 패턴을 Apache에서 먼저 처리하도록 설정
jkmount 설정에 아래와 같이 추가 시
/resources/ URL이 포함되는 패턴은 WAS가 아닌 WEB에서 처리하게 된다.
WebLogic Proxy Plugin 옵션과 비교했을 시에는
WLExcludePathOrMimeType 옵션과 비슷한 역할을 한다
SetEnvIf Request_URI "/resources/*" no-jk
'WEB - Apache 계열 > WEB-WAS 연동' 카테고리의 다른 글
[Apache] Apache2.4.* WebLogic 연동 (0) | 2022.09.14 |
---|---|
[OHS] Failure of Web Server bridge 에러 조치 (0) | 2022.01.16 |
[OHS] WebLogicBridgeConfig 파라미터 사용하기 (0) | 2021.10.12 |
OHS - WLS 연동 관련 옵션 정리 (0) | 2021.08.17 |