리버스 프록시 서버(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
# https://uuu.com 서버로 전달되는 경로 (예: /)
SSLProxyEngine On
ProxyPass / https://uuu.com
ProxyPassReverse / https://uuu.com
</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 / https://uuu.com
ProxyPassReverse / https://uuu.com
/ (루트 경로)로 오는 모든 요청을 https://uuu.com 로 전달합니다.
즉, https://aa.com/로 접속하면 실제 응답은 https://uuu.com 서버에서 제공됩니다.
ProxyPassReverse는 위와 동일한 역할을 합니다.
이 슈1
error during SSL handshake with remote server returned by / 오류 발생시
SSLProxyEngine On 설정에 추가해주면 됩니다.
단 추가시 ProxyPass / https://uuu.com 바로 위에 추가해야 합니다.
이슈2
어제는 aa.com 접속하면 잘되던 것이 오늘 aa.com 접속하니 error during SSL handshake with remote server 발생
aa.com 은 아파치 설정에 TLS1.2 TLS1.3
openssl s_client -connect aa.com:443
openssl s_client -connect aa.com:443 -tLS1_2
uuu.com 은 TLS1.2 사용
openssl s_client -connect uuu.com:443
openssl s_client -connect uuu.com:443 -tLS1_3
-->
uuu.com 을 TLS.1.3 으로 변경요청
aa.com 에 아파치에 TLS1.3 변경하니 proxy Error 발생 안함
'인프라' 카테고리의 다른 글
gitlab 설치후 계속 502 발생할때 (0) | 2025.04.09 |
---|---|
알마리눅스 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 |