본문 바로가기

WEB & WAS/WildFly

[WildFly] Apache WildFly 연동(mod_jk)

반응형

개요

apache의 mod_jk와 WildFly의 ajp를 이용하여 연동

다운로드

  JDK : java.oracle.com

  WildFly : wildfly.org

  apache : www.apache.org

  tomcat connector : https://tomcat.apache.org/download-connectors.cgi

참조

WildFly 설치 : https://fliedcat.tistory.com/7?category=724321

 

1. apache 설치

shell> tar zxvf httpd-2.4.41.tar.gz

shell> cd httpd-2.4.41

shell> ./configure --prefix=/usr/local/httpd --enable-so

shell> make

shell> make install

 

* --enable-so

mod_so가 제공하는 DSO 기능을 사용한다. --enable-mods-shared 옵션을 사용하면 자동으로 이 모듈을 포함한다.

* --prefix=PREFIX

아키텍쳐에 독립적인 파일을 PREFIX에 설치한다. 기본값은 /usr/local/apache2이다.

2. tomcat connector jk 설치

shell> tar zxvf tomcat-connectors-1.2.46-src.tar.gz

shell> cd tomcat-connectors-1.2.46-src/native/

shell> ./configure --with-apxs=/usr/local/httpd/bin/apxs

shell> make

shell> make install

* 설치가 정상 완료되면 apache 설치디렉토리 하위에 위치한 modules 디렉토리에 mod_jk.so 파일이 생성됨

 

3.아파치 환경 설정

 3.1 httpd.conf 파일에 mod_jk 설정 추가

LoadModule jk_module modules/mod_jk.so

Include conf/extra/mod_jk.conf

 3.2 conf/extra/mod_jk.conf 파일 생성

<IfModule mod_jk.c>

# Where to find workers.properties

JkWorkersFile conf/workers.properties

# Where to put jk shared memory

JkShmFile logs/mod_jk.shm

# Where to put jk logs

JkLogFile logs/mod_jk.log

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

JkLogLevel info

# Select the timestamp log format

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

## url pattern 에 따른 connector mapping

JkMountFile conf/uriworkermap.properties

</IfModule>

 3.3 conf/workers.properties 파일 생성(연동할 톰캣리스트 작성)

worker.list=worker1

worker.worker1.port=8009

worker.worker1.host=192.168.0.120

worker.worker1.type=ajp13

 3.4 conf/uriworkermap.properties(톰캣에서 처리할 uri 작성)

/myapp/*=worker1

** myapp URL으로 오는 모든 요청에 대해서는 worker1이라고 지정한 WildFly에서 처리하겠다라는 내용

 

4. 아파치 시작

shell> /usr/local/httpd/bin/apachectl start

5. WildFly ajp 활성화

 5.1 Standalone 모드

  방법 1) CLI를 이용한 ajp 활성화 ( 서비스 재시작 필요 없음)

  shell> jboss_cli.sh --connect  --controller=192.168.0.120:9990

  [standalone@192.168.0.120:9990 /] /subsystem=undertow/server=default-server/ajp-listener=ajp:add(socket-binding=ajp)

  방법 2) standalone.xml 수정 ( 수정후 서비스 재시작)

     : 471 라인 <ajp-listener name="ajp" socket-binding="ajp" /> 추가

[그림 1] standalone.xml

 5.2 Domain 모드

   Domain 모드에서는 full 프로파일(profile)은 기본적으로 ajp가 비활성화 되어 있다.(ha, full-ha만 활성화 되어 있음)

   full 프로파일에 ajp 활성화

   shell> jboss_cli.sh --connect  --controller=192.168.0.120:9990

    [domain@192.168.0.120:9990 /] /profile=full/subsystem=undertow/server=default-server/ajp-listener=ajp:add(socket-binding=ajp)

 

6. 어플리케이션 배포(Application Deployment)

 6.1 Deployment

예) /exploded/myapp 디렉토리에 있는 웹어플리케이션을 myapp 이라는 Context Path를 가지는 myapp 생성

[그림 2] Deployment

- Name : 고유이름

- Runtime Name : ContextRoot.war 형태로  지정(ContextRoot 이름은 uriworkermap.properties에 설정한 uri와 동일하게 설정), 단 WEB-INF/jboss.xml 에 context-root가 정의되어 있을 경우 context-root가 우선 적용됨 

- Path : exploded 디렉토리 또는 Archive(war) 파일이 존재하는 실제 경로

반응형