개발 공부/서버
[서버 기초] 리버스 프록시란? Nginx는 왜 항상 등장할까?
악마의 개발자
2025. 4. 16. 20:00
반응형
💡 “도메인은 하나인데, 서버는 여러 개일 땐 어떻게 해?”
요즘 웹 서비스는 백엔드 서버, 프론트 서버, 이미지 서버, DB 서버 등
기능별로 서버가 나뉘어져 있는 경우가 많아요.
그런데 질문! ❓
“사용자는 하나의 도메인으로 접속하는데,
그 요청들을 어떻게 각각의 서버로 나눠줄 수 있을까?”
정답은 바로 리버스 프록시(Reverse Proxy)입니다!
🚪 리버스 프록시란?
리버스 프록시(Reverse Proxy)는
사용자의 요청을 받아서 내부의 실제 서버로 전달해주는 중간 관리자입니다.
📌 쉽게 말해:
- 사용자는 항상 리버스 프록시에게 요청
- 리버스 프록시가 요청을 알맞은 서버로 전달
- 실제 서버가 응답 → 프록시가 사용자에게 전달
일종의 입구 관리자 역할이에요!
🔁 리버스 프록시의 구조
[사용자] → [리버스 프록시 (Nginx)] → [백엔드 서버]
→ [프론트엔드 서버]
→ [정적 파일 서버]
예를 들어,
- /api 요청은 백엔드 서버로
- /images 요청은 이미지 서버로
- 나머지는 프론트엔드 서버로 보내는 식이에요!
🌐 프록시 종류 비교
종류 | 설명 | 위치 |
프록시(Proxy) | 클라이언트 측에서 외부 요청 중계 | 사용자의 앞 |
리버스 프록시 | 서버 측에서 요청을 내부 서버로 전달 | 서버의 입구 |
📌 우리가 웹 개발에서 흔히 말하는 프록시는
대부분 리버스 프록시입니다!
🧱 Nginx가 대표적인 리버스 프록시
Nginx는 빠르고 가벼운 웹서버이자 리버스 프록시 서버예요.
- 트래픽 분산 (로드 밸런싱)
- 포트 관리
- SSL(HTTPS) 처리
- 정적 파일 서빙
- API 요청 라우팅
모든 걸 다 해낼 수 있어서
대부분의 실무 서비스에 Nginx가 들어갑니다.
📁 Nginx 설정 예시
server {
listen 80;
location /api/ {
proxy_pass http://localhost:4000;
}
location / {
proxy_pass http://localhost:3000;
}
}
💡 위 설정은:
- /api → 백엔드(Node.js, 포트 4000)
- / → 프론트(React, 포트 3000)
이렇게 요청을 나눠주는 거예요!
✅ 리버스 프록시의 장점
장점 | 설명 |
📌 보안 강화 | 실제 서버를 외부에 노출하지 않음 |
📌 SSL 인증서 관리 | Nginx에서 통합 처리 가능 |
📌 포트 통합 | 80, 443 포트로 정리해 사용자 편의 증가 |
📌 로드 밸런싱 | 다수의 서버에 요청을 분산 가능 |
📌 유연한 라우팅 | API, 이미지, 정적 파일 등 요청 분리 가능 |
🧠 정리 한마디!
- 리버스 프록시는 사용자 요청을 내부 서버로 중계해주는 역할
- 대표적인 리버스 프록시 도구는 Nginx
- 실무에서는 보안, 라우팅, HTTPS 적용을 위해 꼭 사용함
- 하나의 도메인으로 여러 서비스를 연결할 수 있는 핵심 기술!
📌 다음 예고: 18편 – “웹소켓(WebSocket)이란? 실시간 채팅은 어떻게 구현할까?”
- HTTP와는 뭐가 다를까?
- 실시간 통신이 가능한 원리
- 웹소켓 vs SSE vs 폴링 차이
[서버 기초] WebSocket이란? 실시간 채팅과 알림의 비밀
💡 “채팅이 바로바로 뜨는 건 어떻게 가능할까?”보통 HTTP 통신은 이렇게 동작하죠.요청 → 응답 받고 끝다시 요청 → 또 응답그런데 카카오톡이나 유튜브 라이브 채팅처럼“누가 말하자마자
it-afternoon.tistory.com
반응형