안녕하세요! 오늘은 웹 아키텍처의 핵심 요소인 리버스 프록시(Reverse Proxy)에 대해 알아보겠습니다.
Reverse Proxy란? 🤔
리버스 프록시는 클라이언트와 서버 사이에서 "숨은 중개자" 역할을 하는 서버입니다.
- 클라이언트는 리버스 프록시가 실제 서버인 것처럼 요청을 보냄
- 리버스 프록시는 이 요청을 적절한 내부 서버로 전달
- 마치 호텔 컨시어지가 손님의 요청을 적절한 부서로 전달하는 것과 같은 원리!
작동 방식 💫
클라이언트 -> [리버스 프록시] -> [실제 서버들]
- 웹 서버 A
- 웹 서버 B
- 웹 서버 C
- 클라이언트가 example.com으로 요청
- 리버스 프록시(Nginx/Apache)가 요청 수신
- 설정된 규칙에 따라 내부 서버로 요청 전달
- 응답을 받아서 클라이언트에게 전송
주요 기능 🌟
1. 로드 밸런싱
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
- 여러 서버에 트래픽을 분산
- 서버 부하 관리 가능
2. 보안 강화
- 실제 서버 IP 주소 숨김
- SSL/TLS 종단점 역할
- DDoS 공격 방어 첫 관문
3. 캐싱
proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m;
- 자주 요청되는 콘텐츠 캐싱
- 서버 부하 감소
- 응답 시간 개선
4. SSL 처리
server {
listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
}
- HTTPS 연결 처리
- 내부 서버는 HTTP로 통신 가능
실제 사용 사례 📱
1. 마이크로서비스 아키텍처
location /api/users {
proxy_pass http://users-service;
}
location /api/products {
proxy_pass http://products-service;
}
- 각 서비스별 라우팅
- API Gateway 역할
2. 정적 파일 서빙
location /static/ {
root /var/www;
expires 30d;
}
- 이미지, CSS, JS 파일 직접 제공
- 메인 서버 부하 감소
장점 ✨
보안 강화
- 내부 시스템 구조 은닉
- 공격 표면 감소
성능 최적화
- 효율적인 로드 밸런싱
- 캐싱을 통한 응답 시간 개선
유연한 아키텍처
- 서버 구성 변경 용이
- SSL 인증서 중앙 관리
주의사항 ⚠️
단일 실패 지점
- 리버스 프록시 장애 시 전체 시스템 영향
- 고가용성 구성 필요
복잡성 증가
- 추가적인 네트워크 홉
- 설정 관리 필요
References 📚
- Nginx Documentation - https://nginx.org/en/docs/
- Apache HTTP Server Documentation - https://httpd.apache.org/docs/
- What is a Reverse Proxy? - AWS Documentation
- Web Application Architecture - Martin Fowler's Blog
728x90
'100===Dev Ops > Nginx' 카테고리의 다른 글
Nginx의 모든 것: 가볍고 강력한 웹 서버 🚀 (2) | 2024.11.17 |
---|---|
Reverse Proxy Introduced (0) | 2024.05.27 |
Nginx Introduced (0) | 2024.05.26 |
Nginx CheatSheet (0) | 2024.05.25 |