본문 바로가기
프로그래밍/운영체제, 서버

Windows 10에서 Tomcat과 IIS 연동하기

by pentode 2018. 7. 26.

개발 및 테스트용으로 Windows 10 64bit에 IIS와 Tomcat을 설치하고 연동을 해보겠습니다. IIS와 Tomcat을 연동한다는 말은 웹서버로 IIS를 사용하고, Servlet/Jsp 에 대한 요청은 Tomcat이 처리하도록 한다는 뜻입니다.

 

Tomcat도 내부에 HTTP 서버 기능이 있지만 보통 운영시에는 IIS나 Apache 같은 웹서버를 앞단에 두어 정적 데이터는 웹서버가 처리하고 동적 데이터의 처리는 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 파일이 서비스 되는 것을 확인할 수 있습니다.

반응형