WEB(Apache) WAS(Tomcat) Reserve Proxy 방식 연동하기

👤 김선호 🕒 2025-10-30 10:51
조회수 528

기본 개념

  1. 사용자는 https://example.com (80/443, Apache로 진입)
  2. Apache가 받아서 내부의 Tomcat으로 대신 요청을 보내줌 (http://127.0.0.1:8080)
  3. Apache는 Tomcat 응답을 다시 클라이언트에게 전달

Tomcat 준비

conf/server.xml안에 설정

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

Apache httpd 모듈 켜기

리눅스 계열(예: Rocky/Ubuntu 등)은 보통 /etc/httpd 또는 /etc/apache2 아래 있고,
윈도우면 Apache24/conf/httpd.conf 안에 모듈 로드하는 라인이 있다.

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule headers_module modules/mod_headers.so

mod_headers는 나중에 Server 헤더 같은 거 숨길 때 쓸 거라 같이 켜두는 게 좋다.

Apache 가상호스트(or httpd.conf)에 Reserve Proxy 설정

이제 Apache에게 "들어온 요청 그냥 Tomcat:8080으로 보내라" 라고 알려주면 끝.

HTTP만 (80포트)인 경우 예시
아파치 설정 파일 어딘가(VirtualHost 블록) 혹은 그냥 httpd.conf에 아래 설정 추가

<VirtualHost *:80>
    ServerName mysite.local        # 외부에서 접속할 도메인/호스트명 (없어도 돌아가긴 함)

    # 클라이언트 -> Apache -> Tomcat
    ProxyPass        /  http://127.0.0.1:8080/
    ProxyPassReverse /  http://127.0.0.1:8080/

    # (선택) Tomcat 서버 정보 숨기기
    Header unset Server
    Header unset X-Powered-By

    # (선택) 정적 파일은 Apache가 직접 서빙하고 싶으면 이런 식으로 location(Directory) 따로 줄 수도 있음
    # Alias /static/ "D:/web/static/"
</VirtualHost>

이렇게 하면:

HTTPS까지 (443포트, SSL 인증서 Apache에 적용) 하는 경우

<VirtualHost *:443>
    ServerName mysite.local

    SSLEngine on
    SSLCertificateFile    "C:/Apache24/conf/ssl/mysite.crt"
    SSLCertificateKeyFile "C:/Apache24/conf/ssl/mysite.key"
    # 필요하면 중간체(체인) cert도 SSLCertificateChainFile 등으로 설정

    ProxyPass        /  http://127.0.0.1:8080/
    ProxyPassReverse /  http://127.0.0.1:8080/

    Header unset Server
    Header unset X-Powered-By
</VirtualHost>

Apache 재시작

리눅스 (RHEL/Rocky/CentOS 계열 예):

sudo systemctl restart httpd

Ubuntu 계열은:

sudo systemctl restart apache2
💬 댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨보세요!
댓글을 작성하려면 로그인해주세요.