톰캣과 IIS를 연동하기 위해서는 세 개의 파일이 필요한데 다음과 같다.
1. isapi_redirect.dll (위에서 다운로드 받은 것 <CATALINA_HOME/conf에 저장해 둔다.)
2. workers.properties ( <CATALINA_HOME>/conf 에 만들도록 한다. )
3. uriworkermap.properties ( <CATALINA_HOME>/conf 에 만들도록 한다. )
먼저 레지스트리를 셋팅해 줘야 한다. 다음 그림은 셋팅을 완료했을 때의 그림이다.
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0
와 같이 key를 만들어준다.
문자열 |
값 |
extension_uri |
/tomcat/isapi_redirect.dll |
worker_file |
<CATALINA_HOME>/conf/workers.properties |
worker_mount_file |
<CATALINA_HOME>/conf/uriworkermap.properties |
log_file |
<CATALINA_HOME>/logs/jk_iis.log |
log_level |
debug ( debug, info, error, emerg 의 종류가 있는데 의미는 모르겠음... ) |
위 테이블의 내용을 똑같이 입력한다. (의미는 뒤에 나옴)
지금까지의 셋팅을 모두 마쳤다면 이번에 IIS쪽 셋팅을 해준다.
IIS 콘솔을 오픈한다.
위의 그림처럼 [기본 웹 사이트]에서 오른쪽 버튼을 클릭한 후 [새로 만들기]를 선택한다.
별칭을 "tomcat"으로 준다. 이 이름은 앞서 extension_uri값을 입력할 때의 값과 같아야 한다.
이 [웹 사이트 컨텐트 디렉터리]는 아까 isapi_redirect.dll 파일을 넣어둔곳을 지정해야 한다.
앞에서 이 파일을 <CATALINA_HOME>/conf 에 넣어 뒀으므로 이곳을 선택한다.
[읽기], [스크립트 실행 (예: ASP)], [실행 (예: ISAPI 응용 프로그램 또는 CGI)]를 체크한다.
위의 과정을 모두 마치면 tomcat이라는 이름의 가상 디렉토리가 만들어진다.
여기서 다시
[기본 웹 사이트]에서 오른쪽 버튼을 클릭한 후 이번엔 [등록 정보]를 클릭한다.
여러 탭중 [ISAPI 필터] 탭을 선택한 후 추가 버튼을 누른다.
필터 이름에 [tomcat]을 실행 파일에는 isapi_direct.dll 파일이 위치한 곳(<CATALINA_HOME>/conf 를 말함)을 선택한다.
확인한 후 마친다. 다시 등록정보를 선택해 들어가보면 다음 그림처럼 왼쪽에 녹색의 화살표가 나타나게 된다.
이제 workers.properties와 uriworkermap.properties 파일에 다음과 같은 값을 넣어준다.
[workers.properties]
worker.list=testWorker
worker.testWorker.port=8009
worker.testWorker.host=localhost
worker.testWorker.type=ajp13
[uriworkermap.properties]
/examples/*=testWorker
/examples/*.jsp=testWorker
/examples/servlet/*=testWorker
이제 톰캣과 IIS를 재구동한 후 URL에 다음과 같이 입력해 본다.
http://localhost/examples/jsp/index.html
http://localhost/examples/servlets/index.html
혹시 실행이 되지 않는다면 위의 내용을 다시 살펴보고 오자나 탈자가 없는지 점검해 본다.
아니면 시스템을 다시 부팅한 후 테스트해 본다.
[톰캣 Context 등록하여 사용하기]
만약 톰캣에 "home"이라는 Context를 하나 등록하여 사용하고 있다고 하면
( http://localhost:8080/home/index.html )
이것을 http://localhost/home/index.html 와 같이 사용하려면 다음과 같이 workers.properties와 uriworkermap.properties 파일을 수정해 주면 된다.
[workers.properties]
worker.list=testWorker, homeWorker
worker.testWorker.port=8009
worker.testWorker.host=localhost
worker.testWorker.type=ajp13
worker.homeWorker.port=8009
worker.homeWorker.host=localhost
worker.homeWorker.type=ajp13
[uriworkermap.properties]
/examples/*=testWorker
/examples/*.jsp=testWorker
/examples/servlet/*=testWorker
/home/*=homeWorker
/home/*.jsp=homeWorker
/home/servlet/*=homeWorker
homeWorker를 새로 만들지 않고 기존의 testWorker를 사용해도 된다.
위과 같이 셋팅을 해놓게 되면 /home/의 .html 이나 .gif 같은 정적인 파일도 모두 톰캣에서 처리를 해주게 된다. 이것을 IIS에서 처리하도록 셋팅해주는 방법은 다음과 같다.
위와 같이 /home/ 이라는 Context가 있다면 IIS로 같은 이름의 가상 디렉토리를 만든다.
그리고 uriworkermap.properties 파일을 열어 다음과 같이 수정해준다.
[uriworkermap.properties]
/examples/*=testWorker
/examples/*.jsp=testWorker
/examples/servlet/*=testWorker
/home/*.jsp=homeWorker // jsp 파일만 처리하도록
/home/servlet/*=homeWorker // /home/*=homeWorker 부분을 없애주면 된다.