리버스 프록시 서버(Reverse Proxy Server)는 클라이언트의 요청을 받아 적절한 백엔드 서버(예: 애플리케이션 서버, 데이터 서버 등)로 전달하고, 응답을 클라이언트에게 반환하는 역할을 하는 서버입니다.
즉 DMZ 구간에 리버스 프록시 서버를 구성하고 백엔드 서버로 라우팅 하는 역할을 합니다.
한개의 도메인으로 서로 다른 프로젝트 즉 다른 서버를 연결하고 싶을때 사용합니다.
[인터넷] │ ┌───────────┴───────────┐ │ 방화벽 (FW1) │ └───────────┬───────────┘ │ ┌───────────┴───────────┐ │ 리버스 프록시 서버 (DMZ) │ (Apache httpd) │ └───────────┬───────────┘ │ ┌───────────┴───────────┐ │ 방화벽 (FW2) │ └───────────┬───────────┘ │ ┌──────────────┴──────────────┐ │ 내부망 (Internal Network) │ │ ┌─────────────────────────┐ │ │ │ 애플리케이션 서버 (Tomcat) │ | │ ├─────────────────────────┤ │ │ │ WebSocket 서버 (등등) │ | │ └─────────────────────────┘ │ └─────────────────────────────┘
ssl.conf
<VirtualHost *:443> ServerName aa.com # 1.1.1.1:8099으로 전달되는 경로 (예: /aa) ProxyPass /aa http://1.1.1.1:8099/aa ProxyPassReverse /aa http://1.1.1.1:8099/aa # 9.9.9.9 서버로 전달되는 경로 (예: /) ProxyPass / http://9.9.9.9/ ProxyPassReverse / http://9.9.9.9/ </VirtualHost>
소스 설명
Apache는 리버스 프록시(Reverse Proxy) 역할을 수행하며, 특정 URL 경로에 대한 요청을 다른 서버로 전달합니다.
(1) /aa 경로의 프록시 설정
# 1.1.1.1:8099으로 전달되는 경로 (예: /aa) ProxyPass /aa http://1.1.1.1:8099/aa ProxyPassReverse /aa http://1.1.1.1:8099/aa
클라이언트가 https://aa.com/aa로 요청하면 Apache는 이를 http://1.1.1.1:8099/aa로 전달합니다.
ProxyPassReverse는 응답 헤더의 Location 또는 Redirect 값을 수정하여 클라이언트가 올바르게 https://aa.com/aa로 다시 요청하도록 보정합니다.
(2) 기본 / 경로의 프록시 설정
ProxyPass / http://9.9.9.9/ ProxyPassReverse / http://9.9.9.9/
/ (루트 경로)로 오는 모든 요청을 http://9.9.9.9/로 전달합니다.
즉, https://aa.com/로 접속하면 실제 응답은 http://9.9.9.9/ 서버에서 제공됩니다.
ProxyPassReverse는 위와 동일한 역할을 합니다.
'인프라' 카테고리의 다른 글
알마리눅스 9에서 WebtoB 4.1 설치 및 오류 해결 (0) | 2025.03.26 |
---|---|
Apache HTTP 서버와 Tomcat WAS 서버 간의 로드 밸런싱 설정 (mod_jk 사용) (0) | 2025.03.07 |
폐쇄망 환경에서 VS Code + Spring Boot + Vue3 셋업 및 이슈 해결 방법 (0) | 2025.01.13 |
[gitlab] CI/CD 배포 설정시 내가 원할때 배포하기 (0) | 2025.01.08 |
gitlab17 gitlab-runner 이용한 CI/CD 설정 (1) | 2024.12.18 |