티스토리 뷰

728x90
반응형

 포스팅은 JEUS와 IIS 연동과정을 설명하고 있습니다.



1. Ajp 13 Listener (Apache JServ Protocol 1.3)

      WebtoB 이외의 다른 Web Server, 예를 들면 Apache, IIS, SunOne(iPlanet)등을 사용할 경우에도 JEUS Web Application과의 상호 연동이 가능하도록 해주는 Protocol 이다.

 

2. Mod_jk Library

       Apache Web Server Web Container의 앞 단에서 사용하기 위해서는 mod_jk라는 모듈을 Apache설치 모듈에 추가해 줘야 한다.

       mod_jk 모듈은 Server Container간의 통신 Protocol을 구현한 것이다.

       다운로드 경로 : http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/

       IIS : ISAPI Redirector

       iPlanet : NSAPI Redirector

 

참고사항

표제목

Apache

IIS

iPlanet

제조사

The Apache

Software Foundation

Microsoft

Sun

OS

UNIX, Windows,

Novell NetWare, EDBDIC

Windows

UNIX, Windows

module

mod_jk

isapi_redirect

nsapi_redirect

설정파일

httpd.conf

workers.properties

isapi_redirect.properties

uriworkermap.properties

workers.properties

obj.conf

mime.conf

magnus.conf

workers.properties

공통점

workers.properties

ajp protocol

 

3. Library Properties 폴더 구성

 

 *폴더명은 사용 환경에 따라서 변경 가능합니다.

 

4. Tomcat Connector 설치

다음은 JEUS와의 연동을 위해서 isapi_redirect라는  IIS Plug-In IIS에 추가시켜줘야 한다.

다운로드 : http://tomcat.apache.org/에서 다운로드

  


 

바이너리 다운

 

 

적절한 바이너리 선택

 

폴더 위치 및 파일 생성

 

=> win64 dll파일이 들어갈 폴더이고, jk uriworkermap.properties, workers.properties 가 들어갈 폴더이다. log는 로그가 생기는 위지를 지정하였다.

• JK폴더 내용

 

 

• Win64폴더 내용

 

=>dll파일이 이름과 properties 파일 이름이 반드시 같아야 한다.

 

5. 환경파일 작업

기존적으로 3개의 파일이 반드시 필요하다

파일명

의미

isapi_redirect.dll 

IIS 서버 플러그인, 미리 만들어져 있는 DLL혹은 직접 빌드해서 가져온다.

workers.properties 

Workers에 의해 사용되어지는 host port에 대한 설정과 전반적인 환경 셋팅

uriworkermap.properties

Workers URL-Path 패턴에 맵핑하는 내용 셋팅

 

기존적으로 3개의 파일이 반드시 필요하다

- registry를 통한 방법

  

HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi  Redirector\1.0 에서 해당 key값과 내용 설정 한다.

 

- 환경 설정 파일을 통한 방법

 

Create a properties file in the same directory as the ISAPI redirector called isapi_redirect.properties i.e. with the same name as the ISAPI redirector DLL but with a .properties extension

 

=> dll확작자를 제외한 이름에 .properties만 붙여 주면 된다. Ex) isapi_redirect.dll -> isapi_redirect. properties

 환경 설정 간략화

 

 

  

 

6. isapi_redirect.properties Setting

• isapi_redirect.properties Setting

-  기본 셋팅 extension_uri,log_file,log_level,worker_file,worker_mount_file

 

# ISAPI redirector path. /jakarta IIS 에서 등록하는 가상디렉터리 이름이다. 일단 /jakarta/extension_uri=/jakarta/isapi_redirect-1.2.30.dll
#
로그파일 Full path. 본인 설치폴더에 맞게 변경 필요하다. log_file=C:\connector\log\isapi_redirect.log
#
로그레벨. 연동 설치중에는 일단 debug. 연동 완료 되면 error 정도로 변경한다. (debug, info, warn, error, trace) log_level=debug
#
워커파일과 워커마운트 파일 Full Path. 본인 설치폴더에 맞게 변경 필요하다.
worker_file=C:\connector\conf\workers.properties
worker_mount_file=C:\connector\conf\uriworkermap.properties

          

속성

의미

ectension_uri

A string value pointing to the ISAPI extension /jakarta/isapi_redirect.dll

log_file

A value pointing to location where log file will be created

log_level

A string value for log level (can be debug, info, warn, error or trace).

This directive was added in version 1.2.31

worker_file

A string value which is the full path to workers.properties file

(for example c:\tomcat\conf\workers.properties)

worker_mount_file

A string value which is the full path to uriworkermap.properties file

(for examplec:\tomcat\conf\uriworkermap.properties)

 

7. uriworkermap.properties Setting

• 참고사이트http://tomcat.apache.org/connectors-doc/reference/uriworkermap.html)

Uri맵핑 패턴을 설정한다.(간략하게 샘플로 설명)

#[URL]=[Worker name] 
/*.jsp=was_lb
/*.gif=was_lb
/*.jpg=was_lb
/admin/*=was_lb 
/manager/*=was_lb 
/examples/*=was_lb


8. workers.properties Setting

• 참고사이트http://tomcat.apache.org/connectors-doc/reference/workers.html)

• 샘플 설정

 

worker.list=was_lb
worker.was_lb.type=lb
worker.was_lb.balanced_workers=was1_servlet_engine1,was2_servlet_engine1

### was1_engine1                                        ### (was1 container1
과의 설정)
worker.was1_servlet_engine1.port=9901                  # JEUS
랑 연동할 포트, ajp13리스너에 설정된 port
worker.was1_servlet_engine1.host=172.100.xxx.1         # worker
의 타입. JEUS와의 통신 프로토콜
worker.was1_servlet_engine1.type=ajp13                 # JEUS
APJ13 리스너가 존재하는 호스트 또는 IP

### was2_engine1
worker.was2_servlet_engine1.port=9901
worker.was2_servlet_engine1.host=172.100.xxx.2
worker.was2_servlet_engine1.type=ajp13
worker.was_lb.sticky_session=1                                          # sticky Session
사용시 셋팅

        => Worker의 이름은 WAS의 컨테이너 엔진을 적어준다.
위의 예에서는 node명이 was1이고 서블릿 엔진이 engine1, node명이 was2이고 서블릿이 engine1이다
세션 라우팅을 위해 필요되며, 위와 같은 구조로 셋팅을 해야, 세션 유지하기 위해서, 어느 worker로 요청을 보낼지 정할 수 있다.

9. WEBMain.xml

• 샘플 설정

<webserver-connection>

<ajp13-listener>

<listener-id>iis1</listener-id>

<port>9901</port>

<output-buffer-size>0</output-buffer-size>

<thread-pool>

<min>10</min>

<max>20</max>

</thread-pool>

</ajp13-listener>

</webserver-connection>

 

10. IIS웹서버 환경 셋팅(7.x)

- 사이트 설정

[사이트 생성] (사이트가 이미 구성되어 있다면 추가하지 말고 설정만 마무리 한다.)
제어판 -> 관리도구-> IIS관리자 클릭한다.

그 이후에 웹 사이트를 추가한다.

 

 

- 사이트 설정2

사이트 -> 우클릭 -> 웹사이트 추가 (사이트가 있다면 패스)

 

=> 사이트 이름을 적절하게 정한다. 실제 경로는 html소스를 위치 시킨다
port
는 서비스 포트이며 호스트 이름은 서비스 하고자 하는 도메인 이름을 이야기 한다

- 가상디렉토리 설정

가상디렉토리는 모듈을 사용하기 위해서 반드시 설정해야 한다

 

 

=> 사이트 -> 우클릭 -> 가상 디렉토리 추가 

여기서 별칭은 보통 jakarta라고 하는데, 변경하고 싶다면, 나중에 isapi dll파일의 환경 설정의 extention_uri URI 패턴과 일치 시킨다.

실제 결로는 dll파일이 위치한 디렉토리를 설정한다.

 

- 처리기 맵핑
처리기 맵핑은 해당 사이트 요청시 처리기 맵핑 rule을 지정하는 것이다

ISAPI필터를 사용할 때는   ISAPI-dll 처리기를 사용하는데 반드시 사용 가능하게끔 만들어야 한다.
사용 되어 있다면 skip하고 사용 안함으로 되어 있다면 사용하도록 설정하자

 

 

 

 

      => 가상디렉토리 클릭 -> 처리기 맵핑 클릭

 

 

      => 실행을 체크하여 사용하도록 만든다

 

     => “사용” 확인

 - 가상디렉토리 설정

ISAP필터를 설치하자.

 

 

만약 ISAP필터가 없다면, window에서 해당 부분을 설치해줘야 한다.

 

 

   =>  프로그램 기능 추가

 

 

=> IIS설정을 클릭한다. 기본적으로 ISAP필터 부분이 설정이 안되어  있을텐데 우리는 ISAP필터를 사용할 것이므로 반드시 설정한다.

 

 

=> 필터이름을 적절히 셋팅하고, 실행파일을 위치를 dll파일로 바라보게 하자

 

 

=>설정확인

 - ISAPI CGI 제한 품

ISAPI CGI 제한으로 ISAPI필터가 제한 될 수 있으니, 허용하게끔 만들어 줘야 한다.

 

 

 

=> ISAPI를 추가 하여 허용하도록 한다

 

=> 허용됨을 확인

- 재시작

 

=> 다시 시작하여 정상적으로 호출되는지 확인한다

 

11. IIS웹서버 환경 셋팅(6.x)

- 가상디렉토리 만들기

제어판 => 관리도구 => "인터넷 정보 서비스" 실행한다.

기본 웹 사이트 => 새로만들기 => 가상 디렉터리

 

 

별칭에 “jakarta” 입력 isapi_redirector.properties 에서 extension_uri속성에 설정한 경로를 입력한다.

 

 

읽기, 스크립트 실행, 실행 3개 모두 체크한다.

 

 

jakarta라는 가상 디렉토리가 생성되었는지 확인한다.

 

 

- ISAPI필터 만들기

  기본웹사이트 => 속성 => ISAPI필터”에서 "추가" 버튼 클릭한다.

 

 

 

필터이름 : jakarta

실행파일 : isapi_redirect.dll 파일 검색해서 선택한다.

 

 

 

- 실행 및 확인

커맨드 창을 열어서, iisreset “ 명령을 실행한다.

 

 

 

기본 웹사이트 => 속성 => ISAPI필터

상태부분에 녹색 화살표가 있으면 성공, 적색 화살표가 나오면 다시 설정한다.

 

 

 

12. 서버기동(7.x)

 

 

 

[Test.jsp]

1       <%

2           String str;

3           str="JSP Test Page";

4       %>

5       <%= str %>

 

 

13. 서버기동(6.x)

 

 

 

[Test.jsp]

6       <%

7           String str;

8           str="JSP Test Page";

9       %>

10     <%= str %>

 

 

14. 문제시, 로그 확인

isapi_redirect 로그를 확인한다

Loglevel debug로 조정한다.

정상적이라고 하면 info로 조정한다

 

)재기동을 하였으나, 연동이 안됨 로그 확인한다.

11     [Sun Jul 22 02:51:56.171 2012] [7032:2260] [debug] wc_get_name_for_type::jk_worker.c (293): Found worker type 'lb'

12     [Sun Jul 22 02:51:56.177 2012] [7032:2260] [debug] uri_worker_map_ext::jk_uri_worker_map.c (512): Checking extension for worker 0: was_lb of type lb (5)

13     [Sun Jul 22 02:51:56.184 2012] [7032:2260] [debug] wc_get_worker_for_name::jk_worker.c (116): did not find a worker was_lb?

14     [Sun Jul 22 02:51:56.189 2012] [7032:2260] [error] uri_worker_map_ext::jk_uri_worker_map.c (506): Could not find worker with name 'was_lb?' in uri map post processing.

15     [Sun Jul 22 02:51:56.192 2012] [7032:2260] [debug] wc_get_worker_for_name::jk_worker.c (116): did not find a worker was_lb?

16     [Sun Jul 22 02:51:56.195 2012] [7032:2260] [error] uri_worker_map_ext::jk_uri_worker_map.c (506): Could not find worker with name 'was_lb?' in uri map post processing.

17     [Sun Jul 22 02:51:56.200 2012] [7032:2260] [debug] wc_get_worker_for_name::jk_worker.c (116): found a worker was_lb

 

   => 로그 내용을 보면 uri_worker_map_ext에서 “was_lb?”를 찾지 못한다고 한다.

환경설정의 worker확인

18     #[URL]=[Worker name]?

19     /*.jsp=was_lb

20     /*.gif=was_lb

21     /*.jpg=was_lb

22     /admin/*=was_lb?

23     /manager/*=was_lb?

24     /examples/*=was_lb

=> ?쓰레기 값이 들어갔음 지우고 재기동 하여 성공


728x90
반응형