🌳 고급 인프라
리버스 프록시가 뭔가요?
쉽게 이해하기
호텔 프론트 데스크를 생각해보세요. 손님(클라이언트)이 룸서비스를 요청하면 프론트에서 받아서 적절한 부서(서버)로 전달하죠. 손님은 주방이나 청소부서가 어디 있는지 몰라도 돼요. 프론트가 알아서 전달해주고, 필요하면 여러 부서에 동시에 요청할 수도 있어요. 리버스 프록시가 바로 이런 역할을 해요.
핵심 정리
클라이언트와 서버 사이에서 요청을 대신 받아 전달하는 중간 서버예요.
자세히 알아보기
리버스 프록시는 클라이언트의 요청을 받아서 실제 서버로 전달하는 중간 서버예요. 클라이언트 입장에서는 리버스 프록시가 실제 서버인 것처럼 보이고, 뒤에 어떤 서버들이 있는지 알 수 없어요. Nginx와 Caddy가 대표적인 리버스 프록시 서버예요.
리버스 프록시는 여러 가지 역할을 해요. 첫째, 로드밸런싱이에요. 여러 대의 백엔드 서버가 있을 때 요청을 골고루 분산시켜줘요. 둘째, SSL/TLS 처리를 한 곳에서 할 수 있어요. 백엔드 서버들은 HTTPS를 신경 쓰지 않고, 리버스 프록시에서만 인증서를 관리하면 되죠. 셋째, 정적 파일을 캐싱해서 빠르게 제공할 수 있어요.
실무에서는 하나의 도메인에서 여러 서비스를 제공할 때 많이 써요. 예를 들어 example.com/api는 백엔드 서버로, example.com/blog는 블로그 서버로, example.com의 나머지는 프론트엔드 서버로 보내는 식이에요. 각 서버는 3000, 4000, 5000번 포트로 돌아가지만, 사용자는 그냥 80번 포트로만 접속하면 돼요.
Caddy는 자동으로 HTTPS 인증서를 발급받고 갱신해줘서 특히 편리해요. Nginx는 더 세밀한 설정이 가능하지만 설정 파일이 복잡할 수 있어요. 요즘은 클라우드 환경에서 AWS ALB, Google Cloud Load Balancer 같은 관리형 리버스 프록시도 많이 사용해요.