본문 바로가기

톰캣과 IIS 공존 설정 방법: 포트 분리 vs Reverse Proxy

by 애덤더미 2024. 12. 18.
반응형

 

안녕하세요!
오늘은 서버 운영에 필요한 톰캣(Tomcat)과 IIS(Internet Information Services)를 같은 서버에서 공존시키는 방법에 대해 이야기해보려고 합니다. 두 웹 서버를 동시에 사용하는 상황은 종종 생기는데요, 주로 이런 경우 아닐까요?

  • 톰캣: Java 기반 웹 애플리케이션 실행용
  • IIS: ASP.NET 웹사이트, 정적 파일 제공, 또는 프록시 서버 역할

자, 이제 두 서버를 효율적으로 공존시키기 위해 어떤 방법들이 있는지 하나씩 알아볼게요!

1. 왜 톰캣과 IIS를 같이 사용하나요?

보통 한 서버에서 톰캣만 사용하거나 IIS만 사용하는 경우가 많은데요, 두 서버를 같이 사용해야 하는 상황이 발생하기도 합니다. 이런 경우입니다:

  • 톰캣은 Java 애플리케이션용, IIS는 정적 파일(HTML/CSS/JS) 또는 .NET 애플리케이션용으로 분리 운영.
  • 기존에 IIS에서 웹 서비스를 운영 중인데, 새로운 Java 기반 애플리케이션이 추가된 경우.
  • IIS를 프록시 서버로 사용해 요청을 분배하고 싶을 때.

결국, 각각의 장점을 살리면서 서비스를 안정적으로 운영하기 위한 거죠!

 

2. 톰캣과 IIS를 공존시키는 방법

톰캣과 IIS를 같은 서버에서 사용하려면, 두 가지 방법을 고려할 수 있습니다:
(1) 포트 분리

(2) Reverse Proxy 설정이에요.

각 방법의 특징과 설정 방법을 알아보겠습니다.

 

방법 1: 포트 분리

가장 간단한 방법입니다.
톰캣과 IIS가 서로 다른 포트에서 동작하도록 설정하는 건데요, 톰캣은 기본적으로 8080 포트를 사용하고, IIS는 80 포트를 사용하도록 설정하면 됩니다.

 

장점

  • 설정이 쉽고 빠릅니다.
  • 두 서버가 독립적으로 동작해 관리가 편리합니다.

단점

설정 방법

  1. 톰캣 포트 변경 톰캣의 server.xml 파일을 열고 <Connector> 설정을 수정합니다:

 

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

 

    • 기본값인 8080을 다른 값으로 변경 가능(예: 9090).
  1. IIS 포트 유지 IIS는 기본적으로 80 포트를 사용하므로 특별히 변경하지 않아도 됩니다.
  2. 방화벽 설정 서버 방화벽에서 80포트(IIS)와 8080포트(톰캣)를 열어주세요.

방법 2: IIS Reverse Proxy 설정

IIS를 Reverse Proxy(리버스 프록시)로 설정해, 클라이언트의 요청을 IIS가 받아서 필요한 요청만 톰캣으로 전달하는 방법입니다. 이 방법은 클라이언트가 포트를 신경 쓰지 않아도 되는 장점이 있습니다.

 

장점

  • URL을 통합할 수 있어 사용자가 포트를 신경 쓸 필요가 없습니다.
  • SSL 인증서를 IIS에만 설정하면 됩니다.

단점

  • 설정이 포트 분리보다 조금 복잡합니다.
  • IIS와 톰캣 간 요청이 많아지면 성능에 영향을 줄 수 있습니다.

설정 방법

  1. IIS에 Application Request Routing (ARR) 설치
    • IIS 관리자에서 "ARR(응용 요청 라우팅)" 모듈을 설치합니다.
    • 설치 후 프록시 활성화:
      1. IIS 관리자에서 서버 이름을 선택합니다.
      2. Application Request Routing Cache → 오른쪽 메뉴의 Proxy 설정 클릭.
        Microsoft Learn Challenge 애플리케이션 요청 라우팅을 사용하여 전달 프록시 만들기
      3. 프록시 활성화 체크박스를 선택.
        Microsoft Learn Challenge 애플리케이션 요청 라우팅을 사용하여 전달 프록시 만들기
  2. URL Rewrite 규칙 설정
    • IIS 관리자에서 톰캣으로 요청을 전달할 URL 규칙을 설정합니다. 예를 들어, /app으로 시작하는 요청을 톰캣으로 프록시:
      <rewrite>
        <rules>
          <rule name="TomcatProxy" stopProcessing="true">
            <match url="^app/(.*)" />
            <action type="Rewrite" url="http://localhost:8080/{R:1}" />
          </rule>
        </rules>
      </rewrite>
  3. 톰캣 서비스 유지
    • 톰캣은 기본 포트(8080)에서 실행합니다.
  4. 테스트

3. 주의사항

  1. 성능 문제
    • IIS와 톰캣이 같은 서버에 설치될 경우, CPU와 메모리 사용량을 주기적으로 모니터링해야 합니다.
    • 많은 트래픽이 발생할 경우, Reverse Proxy 방식은 성능 저하를 일으킬 수 있습니다.
  2. 보안
    • IIS와 톰캣 둘 다 SSL 인증서를 적용해야 합니다.
    • Reverse Proxy를 사용할 경우, IIS에 SSL 설정을 적용하고 톰캣과의 통신은 내부 IP로 제한하세요!
  3. 로그 관리
    • IIS와 톰캣의 로그를 분리 관리하여 문제가 발생했을 때 원인을 쉽게 파악할 수 있도록 설정합니다.

결론적으로!

 

  • 포트 분리:
    설정이 쉽고 빠르며, 톰캣과 IIS를 독립적으로 관리하고 싶을 때 적합합니다.
  • Reverse Proxy:
    URL을 통합 관리하고 싶거나, 클라이언트가 포트를 신경 쓰지 않도록 하려면 이 방법이 적합합니다.

 

어떤 방법이 더 적합한지 고민 중이라면, 현재 고객사 요구사항운영 환경을 고려해 결정하면 좋겠죠? 😊

상황에 맞게 운영 환경을 잘 구축하시길 바래요!

 

반응형