WEB(Apache) WAS(Tomcat) Reserve Proxy 방식 연동하기
👤 김선호
🕒 2025-10-30 10:51
조회수 528
기본 개념
- 사용자는 https://example.com (80/443, Apache로 진입)
- Apache가 받아서 내부의 Tomcat으로 대신 요청을 보내줌 (http://127.0.0.1:8080)
- 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>
이렇게 하면:
- 사용자가 http://mysite.local/board/list 로 접근
- Apache가 내부적으로 http://127.0.0.1:8080/board/list 로 요청 넘김
- 응답을 그대로 돌려줌
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
아직 댓글이 없습니다. 첫 댓글을 남겨보세요!
댓글을 작성하려면 로그인해주세요.