Windows 10에서 Tomcat과 IIS 연동하기

ISAPI(Internet Server Application Programming Interface) 확장 모듈을 사용해서 특정 URL 또는 특정 확장자(*.jsp, *.do)에 대한 요청이 오면 Tomcat으로 요청을 돌리도록 설정하게 됩니다.

1. 연동 설정에 사용된 소프트웨어는 다음과 같습니다.

모두 64bit 또는 32bit에 맞춰야 합니다.

– Windows 10 64bit

– IIS(Internet Information System)

– JDK 10(7 이상이면 가능)

– Tomcat 8.5.32

– Tomcat Connector 1.2.43(ISAPI 모듈)

2. 기본 소프트웨어 설치하기

– IIS 의 설치는 Windows 10에 IIS 설치하기 를 참조하세요.

– JDK의 설치는 윈도우에 JDK 8 설치하기를 참조하세요.

– Tomcat의 설치는 Windows 10에 Tomcat 설치하기를 참조하세요.

3. IIS에 ISAPI 설치하기

Windows 기능 켜기/끄기 에서 “ISAPI 필터”와 “ISAPI 확장”을 체크하고 “확인” 버튼을 눌러 설치합니다. (Windows 기능 켜기/끄기의 실행은 IIS 설치 글에서 확인하세요.)

4. Tomcat Connector 설치하기

4.1. http://tomcat.apache.org 사이트 왼쪽의 Download에서 Tomcat Connectors 를 클릭해서 들어갑니다.

4.2. Tomcat Connectors JK 1.2 항목에서 “Binary Releases for selected versions” 를 클릭해서 들어갑니다.

4.3. 바이너리 인덱스 페이지에서 “windows” 를 클릭해서 들어갑니다.

4.4. 윈도우즈 바이너리 페이지에서 “tomcat-connectors-1.2.43-windows-x86_64-iis.zip” 파일을 다운로드 받습니다.

4.5. 다운받은 압축파일의 압축을 풀면 나오는 “isapi_redirect.dll” 파일이 필요한 파일 입니다.

설치는 임의의 위치를 정해서 파일을 복사해 두면 됩니다. 폴더 위치른 다음과 같이 정했습니다.(자신이 원하는 위치에 두면 됩니다.) 여기서는 D:\util 폴더 아래에 Tomcat Connector 폴더, 그 아래 bin 폴더를 만들고 dll 파일을 두었습니다.

D:\util\Tomcat Connector\bin\isapi_redirect.dll 

Tomcat Connector 폴더 아래에 그외에 설정파일을 둘 conf 폴더와 로그 파일을 둘 log 폴더를 만들었습니다.

5. Tomcat Connector 설정파일 만들기

바이너리 배포파일내에 설정 파일은 포함되어 있지 않습니다. 커넥터가 어떻게 동작할지 지정하는 설정파일을 만들어야 합니다.

5.1. isapi_redirect.properties 파일을 작성합니다.

D:\util\Tomcat Connector\bin 폴더 아래 생성합니다. 이 파일은 isapi_redirect.dll 파일과 같은 곳에 있어야 합니다. 만약 Tomcat Connector의 설치 위치를 이 글에서와 다르게 했다면 이파일의 위치는 dll 파일과 같은 폴더에 있으면 됩니다. 파일 내용중 #으로 시작하는 라인은 주석(Comment) 입니다.

# IIS가 필터를 찾는 위치 입니다. 나중에 IIS관리자에서 가상디렉토리로 /jakarta 를 만들것입니다.

extension_uri=/jakarta/isapi_redirect.dll

# 로그 파일의 저장 와 로그파일의 이름 입니다. 경로는 절대경로로 기입합니다.

log_file=D:\util\Tomcat Connector\log\isapi_redirect.log

# 로그 레벨 : debug, info, warn, error, trace

log_level=info

# IIS에서 redirect할 서버들의 정보를 지정한 파일입니다. 여러 Tomcat 서버로 부하를 분산할 수 있습니다.

worker_file=D:\util\Tomcat Connector\conf\workers.properties

# Tomcat 서버(Worker)로 요청을 보낼 URI 를 지정하는 파일 입니다.

worker_mount_file=D:\util\Tomcat Connector\conf\uriworkermap.properties

5.2. workers.properties 파일을 작성합니다.

D:\util\Tomcat Connector\conf 폴더 아래 생성합니다. 이 파일에 IIS에 연결될 Tomcat 서버들의 정보를 설정하게 됩니다. 이 글에서는 하나의 Tomcat 서버만을 사용하지만 여러개의 Tomcat 서버를 두고 부하를 분산하는 것도 가능합니다.

# Tomcat 서버를 지정합니다. 콤마로 분리해서 여러개를 지정할 수 있습니다.

worker.list=worker1

# Tomcat과 통신하는 프로토콜을 지정합니다.

worker.worker1.type=ajp13

# Tomcat 서버의 IP 주소 입니다.

worker.worker1.host=localhost

# Tomcat 서버의 ajp13 통신 포트 입니다. Tomcat의 server.xml 에 지정되어 있습니다.

worker.worker1.port=8009

workers.properties 파일의 자세한 설정방법은 workers.properties configuration 를 참조하세요.

5.3. uriworkermap.properties

D:\util\Tomcat Connector\conf 폴더 아래 생성합니다. 특정 URI로 들어온 요청을 Tomcat으로 보내도록 지정합니다.

# 확장자가 jsp인 요청을 Tomcat으로 reidrect 합니다.

/*.jsp=worker1

– uri 패턴은 대소문자를 구분합니다.

– # 으로 시작하는 행은 주석 입니다.

– 패턴과 Worker명 사이의 = 기호 앞과 뒤의 공백은 무시됩니다.

– 패턴 매칭 기호로 ?, *, |, !등을 사용할 수 있습니다.

uriworkmap.properties 파일의 자세한 설정 방법은 uriworkermap.properties configuration 를 참조하세요.

6. IIS에 테스트용 웹사이트 만들기

6.1. IIS관리자에서 왼쪽 트리에서 “사이트”를 클릭하고 화면 오른쪽 위의 작업에서 “웹 사이트 추가…“를 클릭합니다.

6.2. 사이트 정보를 입력합니다.

– 사이트 이름은 “Tomcat IIs 연동” 으로 입력합니다.

– 응용프로그램 이름은 기본값으로 사이트 이름과 같은 풀이 생성 되는데, 여기서는 “선택” 버튼을 클릭하여 DefaultAppPool을 선택했습니다.

– 실제 경로는 설치된 Tomcat의 웹 루트 폴더로 지정했습니다. 여기서는 D:\util\Apache Software Foundation\Tomcat 8.5\webapps\ROOT 입니다. IIS 웹 루트와 연동된 Tomcat의 웹 루트가 반드시 같을 필요는 없습니다.

– 포트는 8090으로 지정했습니다. Tomcat 설치시 웹 포트가 8080으로 설치 했다면 그 포트와 충돌하지 않도록 다른 포트로 지정하면 됩니다. 연동이 완료되면  Tomcat의 웹 포트는 닫아 버려도 상관이 없습니다.

– 호스트 이름은 비워 뒀습니다. 테스트용 개인 PC에 도메인이 없기 때문입니다.

– “웹 사이트 즉시 시작” 에 체크했습니다.

사이트가 생성이 되었습니다.

아직은 Tomcat연동이 완료되지 않아서 jsp 호출을 처리하지 못합니다.

7. IIS에서 Tomcat 연동 설정하기

7.1. ISAPI 및 CGI 제한 설정하기

IIS관리자의 왼쪽 컴퓨터 이름을 클릭하여 가운데 화면에서 “ISAPI 및 CGI 제한“을 더블 클릭합니다.

화면 오른쪽의 “추가…” 를 눌러 제한을 추가합니다.

– ISAPI 또는 CGI 경로 에는 isapi_redirect.dll 을 선택합니다.

– 설명에는 Tomcat 을 입력합니다.(임의로 넣어도 됩니다.)

– 확장 경로 실행 허용에 체크합니다.

7.2. 가상디렉토리 추가

Tomcat IIS 연동 사이트에 마우스 오른쪽 키를 클릭해서 팝업 메뉴에서 “가상 디렉터리 추가…“를 선택합니다.

가상 디렉터리 추가 창에서 다음과 같이 입력합니다.

– 별칭은 jakarta를 입력합니다. isapi_redirect.properties에서 지정한 이름 입니다.

– 실제 경로는 Tomcat Connector의 bin 폴더를 지정합니다.

7.3 ISAPI 필터 설정하기

Tomcat IIS 연동 사이트를 클릭하고 가운데 화면 아이콘중에서 ISAPI 필터를 더블클릭합니다.

화면 오른쪽 위의 “추가…” 버튼을 클릭하여 정보를 입력합니다.

– 필터 이름에 “Tomcat” 을 입력합니다.(임의로 입력해도 됩니다.)

– 실행파일에 isapi_redirect.dll 파일을 지정합니다.

7.4. 처리기 매핑을 설정합니다.

Tomcat IIS 연동 사이트를 클릭하고 가운데 화면 아이콘중에서 처리기 매핑을 더블클릭합니다.

사용 안 함에 있는 ISAPI-dll 을 클릭하고 화면 우측의 “기능 사용 권한 편집…“을 클릭하여 설정을 합니다.

사용권한에서 읽기, 스크립트, 실행에 모두 체크합니다. 기본적으로 읽기와 스크립트에는 체크가 되어 있을 것입니다.

8. 서비스를 재시작합니다.

시작버튼을 눌러 Windows 관리도구 -> 서비스를 실행해서 “World Wide Web Publishing 서비스“를 재시작합니다.

Tomcat 도 시작이 되어 있어야 합니다.

9. 연동 결과 확인

IIS 사이트의 포트인 8090으로 jsp 파일이 서비스 되는 것을 확인할 수 있습니다.



출처: https://offbyone.tistory.com/322 [쉬고 싶은 개발자]