Proxy Server
Proxy Server
Proxy Server
- 서버와 클라이언트 사이에서 중계 역할을 해 주는 서버 및 애플리케이션
- 클라이언트의 및 서버의 요청/응답을 대신 받아 전달해 주는 등 대리자의 역할을 수행
- 이렇게 대리로 통신하는 행위를 proxy라고 함
- Open(forward) proxy 와 reverse proxy로 나뉨
Forward Proxy
- 클라이언트 한테 붙어 있는 proxy server
- 클라이언트가 요청을 보낼 때 proxy server를 통해 요청을 보내 서버에 연결
- Proxy server의 IP를 통해 요청이 들어오므로, 클라이언트의 정보가 감춰짐
- 다음과 같은 기능 제공
- 캐싱: 정적인 컨텐츠를 캐싱해서 웹 서버의 부하를 줄임
- IP 우회: 서버 측에 proxy server의 IP를 제공함으로 인해 클라이언트의 IP를 감춤
- 연결 제한: 내부망에서 proxy server를 두어, 해당 망의 사용자들이 특정 사이트로 접속하는 것을 제한 가능
Reverse Proxy
- Forward proxy와 달리, 서버에 붙어 있는 proxy server
- 클라이언트는 reverse proxy server에 요청을 보내게 됨
- 외부에서는 웹 서버에 직접 연결할 수 없으므로 서버의 정보가 감춰짐
- Nginx, Apache등이 해당 역할 수행
- 다음과 같은 기능 제공
- 로드 밸런싱: Proxy server 뒤에 여러 웹 서버를 사용해 요청을 분산 가능
- 보안: 웹 서버가 노출되지 않으므로 DDos 공격 및 외부의 DB 접근에 안전. 다만 서비스 자체에 대한 보안을 제공하진 않음
- SSL 가속: 웹 서버 대신 SSL 가속 하드웨어를 설치한 reverse proxy server가 대리 수행해서 속도를 높임
- 캐싱: Forward와 동일
References
- https://en.wikipedia.org/wiki/Proxy_server
- https://bcp0109.tistory.com/194
- https://sujinhope.github.io/2021/06/13/Network-%ED%94%84%EB%A1%9D%EC%8B%9C(Proxy)%EB%9E%80,-Forward-Proxy%EC%99%80-Reverse-Proxy.html
- https://losskatsu.github.io/it-infra/reverse-proxy/#%EB%A6%AC%EB%B2%84%EC%8A%A4-%ED%94%84%EB%A1%9D%EC%8B%9Creverse-proxy-%EC%84%9C%EB%B2%84-%EA%B0%9C%EB%85%90