이번 글은 reverse proxy의 개념을 간단하게 알아보고자 합니다.
아래 첨부된 sse 블로그에서 nginx 부분을 보다가 reverse proxy에 대해서 궁금증이 생겨서 찾아보게되었습니다.
먼저 리버스 프록시는 웹서비스의 성능 향상, 보안 강화 및 유연한 확장성 제공 등 다양한 이점을 제공하며, 많은 서비스에서 활용되고 있습니다.
개념
리버스 프록시란 클라이언트와 웹 서버 간의 중개자 역할을 하는 서버입니다.
클라이언트로부터 요청을 대신 받아 웹 서버에 전달하고, 웹 서버의 응답을 클라이언트에게 전달하는 역할을 합니다.
이를 통해 웹 서버의 부하를 분산시킬 수 있고, 보안을 강화하는 등 다양한 기능을 수행하게 됩니다.
동작 방식
- 클라이언트가 리버스 프록시에 요청을 보낸다.
- 리버스 프록시는 요청을 웹 서버에 전달합니다.
- 웹 서버는 요청된 데이터를 처리한 후 리버스 프록시에게 응답을 보냅니다.
- 리버스 프록시는 웹 서버로부터 받은 응답을 클라이언트에게 전달하는 방식으로 동작합니다.
특징
- 서버 부하 분산
- 웹 서비스에 트래픽이 올라가면 서버에 부하가 집중되어 성능 저하 및 서비스 중단이 발생할 수 있습니다.
리버스 프록시는 들어오는 요청을 여러 대의 서버로 분산시켜 각 서버의 부하를 줄이고, 서버의 가용성을 높여 안정적인 서비스 제공이 가능합니다.
- 웹 서비스에 트래픽이 올라가면 서버에 부하가 집중되어 성능 저하 및 서비스 중단이 발생할 수 있습니다.
- 보안 강화
- 외부에서 직접 서버에 접근하지 못하도록 하여 웹 서비스의 보안을 강화합니다.
- 클라이언트 요청을 먼저 리버스 프록시를 거쳐 서버로 전달되는데, 이때 리버스 프록시는 악성 요청 필터링, 접근 제한 등의 역할을 수행하여 서버를 보호합니다.
- 캐싱 및 가속화
- 자주 사용되는 정적 파일들(이미지, css...)을 캐시에 저장하여 빠르게 제공할 수 있습니다.
- 이로 인해 서버의 부하를 줄이고 응답 시간을 단축시켜 웹 서비스의 성능을 향상시킬 수 있습니다.
장단점
장점
- 로드 밸런싱
- 보안 강화
- 캐싱
- 웹 서버 최적화
단점
- 추가적인 서버 설정과 관리
- 네트워크 지연
- 복잡성 증가
참고
https://www.cloudflare.com/ko-kr/learning/cdn/glossary/reverse-proxy/
https://tecoble.techcourse.co.kr/post/2022-10-11-server-sent-events/
잘못된 정보이거나 오타가 있다면 댓글 부탁드립니다 :)
'자잘한 cs' 카테고리의 다른 글
JPA의 N+1 문제에 대해서 설명해주세요. (0) | 2024.11.22 |
---|---|
엔티티 매니저에 대해 설명해주세요. (0) | 2024.11.20 |
JPA의 ddl-auto 옵션은 각각 어떤 동작을 하고 어떤 상황에서 사용해야 할까요? (0) | 2024.11.18 |
Redis가 빠른 이유 (0) | 2024.06.10 |
프록시 패턴이란? (0) | 2024.05.22 |