• 검색 결과가 없습니다.

Apache 웹 서버

문서에서 JEUS Web Engine 안내서 (페이지 108-111)

Apache를 웹 엔진과 연동하려면 다음과 같은 과정을 수행해야 한다.

1. Apache에 mod_jk 라이브러리를 설치한다.

2. JEUS 웹 엔진에 AJP13 리스너를 설정한다.

3. workers.properties 파일을 생성하고 편집한다.

4. Apache 웹 서버의 httpd.conf 파일에 연동 구절을 삽입한다.

5. Apache 웹 서버를 재시작한다.

참고

Apache의 경우 2.2.4, mod_jk의 경우 1.2.20을 기준으로 설명한다.

mod_jk 라이브러리 설치

Apache 웹 서버를 웹 엔진의 앞 단에서 사용하려면 "mod_jk"라는 모듈을 Apache 설치 모듈에 추가해야 한다. "mod_jk" 모듈은 서버와 엔진 간의 통신 프로토콜을 구현한 것으로, 이 프로토콜은 Apache JServ Protocol 1.3(AJP 1.3)이다.

참고

2014년 4월 현재 Windows 바이너리를 제공하고 있는 http://tomcat.apache.org/download-connec tors.cgi에서 소스를 다운로드받아서 해당 머신에서 컴파일한다.

AJP13 리스너 설정

mod_jk 라이브러리설치가완료되면 JEUS 웹엔진에 AJP13 리스너를설정한다. AJP13 리스너설정방

법의자세한내용은 “2.3.2. AJP 리스너설정”을참고한다.

workers.properties 설정

workers.properties 파일은 mod_jk를 위한 설정 파일이다.

예를 들어 JEUS는 server1, server2라는 2대의 서버가 있다. 호스트 이름이 각각 server1, server2라고 가 정하면 각 서버의 웹 엔진 이름은 server1_servlet, server2_servlet이 된다. 각 웹 엔진에 설정된 AJP 리스 너들은 9901, 9902로 설정했다고 가정하자.

다음은 가정한 JEUS 환경에서의 workers.properties 예제이다.

[예 2.1] mod_jk 설정 파일 예제 : <<workers.properties>>

worker.list=jeus_load_balancer_workers worker.jeus_load_balancer_workers.type=lb

worker.jeus_load_balancer_workers.balance_workers=server1_servlet, server2_servlet worker.jeus_load_balancer_workers.sticky_session=true

###########################################

# listener specific configuration

###########################################

worker.server1_servlet.host=server1 worker.server1_servlet.port=9901 worker.server1_servlet.type=ajp13

worker.server1_servlet.route=ZG9tYWluMS9zZXJ2ZXIx

worker.server2_servlet.host=server2 worker.server2_servlet.port=9902

worker.server2_servlet.reference=server1_servlet worker.server2_servlet.route=ZG9tYWluMS9zZXJ2ZXIy

workers.properties 파일은 몇몇 정의를 제외하고 일반적으로 "worker.<worker_name>.<directive>=<val ue>"의 형식으로 설정을 정의한다. 다음은 중요한 설정에 대한 설명이다.

worker.list

해당 worker를 정의하는 항목이다. worker의 이름들은 콤마(,)로 구분되며 여러 worker들을 나열할 수 있다.

다음은 "jeus_load_balancer_workers"라는 이름의 worker를 하나 정의한 예제이다.

worker.list=jeus_load_balancer_workers

worker.<worker_name>.type

worker의 타입을 정의한다. 'ajp13', 'ajp14', 'jni', 'lb', 'status' 등을 선택할 수 있다. AJP13을 지원하기 위 해 JEUS에서는 'ajp13', 'lb'만의 설정으로도 충분하다.

다음은 "jeus_load_balancer_workers"를 load balancer type으로정의한예제이다. worker.jeus_load_balancer_workers.type=lb

worker.<worker_name>.balance_workers

콤마(,)로 구분하여 Load Balance를 원하는 worker들을 나열할 수 있다. 위의 woker.list에 적은 worker 들이 나타나서는 안 된다.

JEUS의 AJP13 리스너와 연동하는 경우 올바른 load balancer 및 sticky session 역할을 하려면 worker 의 이름을 JEUS의 서블릿 엔진 이름으로 해야 한다. JEUS의 경우 Session ID의 라우팅 정보로 서블릿 엔진 이름을 이용하며 mod_jk에서는 worker의 이름을 이용하기 때문이다.

worker.<worker_name>.sticky_session

Session ID를 기반으로 라우팅을 지원할지 여부를 설정한다. true(or 1) 또는 false(or 0)로 설정할 수 있 다. JEUS에서는 Sticky Session을 기본으로 지원하므로 항상 true로 설정한다. (기본값: true)

다음은 "jeus_load_balancer_workers"는 Sticky Session을 지원한다는 예제이다.

worker.jeus_load_balancer_workers.sticky_session=true

worker.<worker_name>.host

JEUS의 AJP13 리스너가 존재하는 호스트 이름 또는 IP 주소를 입력한다.

worker.<worker_name>.port

JEUS의 AJP13 리스너의 포트 번호를 설정한다.

worker.<worker_name>.reference

많은 load balancer worker들을 설정할 때 유용하며 지정된 값에 해당하는 worker의 설정값을 reference 할 수 있는 설정이다.

예를 들어 "worker.castor.reference=worker.pollux"라고 설정했다면 명시적으로 castor worker에서 설 정한 값을 제외하고 모든 pollux worker의 설정들을 상속받는다.

worker.<worker_name>.route

설정값에 해당하는 값이 sticky로 요청이 왔을 경우에 해당 worker가 처리하는 설정이다.

JEUS의 세션 매니저에서 생성하는 세션에 붙이는 세션 라우팅 기술로 해당하는 worker를 매치시킴으 로서 로컬 세션의 활용도를 높일 수 있다. 세션 라우팅에 대한 자세한 내용은 “JEUS 세션 관리 안내서”

의 “1.2. 세션 트래킹 구조”를 참고한다.

해당 값은 domain_name/server_name의 Base64 알고리즘으로 인코딩한 값이다. 해당 인코딩 값은 JEUS_HOME/bin의 encryption 명령을 통해 얻을 수 있다.

다음은 사용 예제이다.

jeus/bin/encryption -algorithm base64 -text domain1/server1

설정할 때 server1_servlet의 엔진 이름이 아닌 "domain1/server1", "domain1/server2"와 같이 "도매인 이름/서버 이름"을 사용하는 것에 유의한다.

경고

이 설정들은 mod_jk 버전에 따라 deprecated될 수도 있으므로 본 절에서 제시한 내용은 참고 용도로 만 사용한다. 반드시 Tomcat 홈 페이지의 mod_jk 관련 설명에 따라 설정한다.

httpd.conf 설정

httpd.conf 파일에는 mod_jk 모듈을 사용하기 위해 다음 사항을 추가해야 한다.

[예 2.2] Apache에 mod_jk 설정 예제 : <<httpd.conf>>

. . .

LoadModule jk_module "/usr/local/apache/modules/mod_jk.so"

JkWorkersFile "/usr/local/apache/conf/workers.properties"

JkLogFile "/usr/local/apache/logs/mod_jk.log"

JkLogLevel info

JkMount /examples/* jeus_load_balancer_workers . . .

경고

Apache 버전에 따라 deprecated될 수도 있으므로 여기에서 제시한 것은 참고 용도로만 사용한다.

반드시 Apache 매뉴얼에 따라 설정한다.

문서에서 JEUS Web Engine 안내서 (페이지 108-111)