일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Shell
- 도커컴포즈
- sftp란
- 빅오노테이션
- nosql
- BIG-O NOTATION
- AWS
- Django
- 도커
- DynamoDB
- docker-compose
- linux
- test
- customize
- 컨테이너
- Bash
- minikube mac 설치
- python
- 테라폼 문법
- 테라폼 기본 문법
- iterm2 shortcuts
- zshrc
- minikube 설치 방법
- iterm2 단축키
- terraform
- docker
- zsh
- terraform 문법
- server
- 파이썬
- Today
- Total
sklass의 s-class 프로그래밍 blog
Forward Proxy와 Reverse Proxy 본문
Proxy
프록시(proxy)란 '대신' 이라는 의미를 가지고 있고, 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 말합니다.
즉, 서버와 클라이언트 사이에서 대리로 통신을 수행해주는 것을 프록시라고 하고, 그 기능을 하는 서버를 프록시 서버라 부르게 됩니다.
프록시 서버는 프록시 서버에 요청된 내용들을 캐시를 이용해서 저장해둡니다.
클라이언트는 캐시 안에 있는 내용을 요청할 경우, 원격 서버에서 접속하여 데이터를 가져올 필요가 없기 때문에 전송 시간을 아낄 수 있고, 불필요한 외부 연결을 안해도 됩니다.
또한 서버측은 트래픽이 줄어들어 네트워크 병목 현상이 생기는 것을 방지하는 효과도 얻을 수 있습니다.
프록시는 크게 Forward Proxy 와 Reverse Proxy로 나뉩니다.
Forward Proxy
클라이언트가 인터넷에 직접 접근하는게 아니라 포워드 프록시 서버가 요청을 받고, 해당 요청을 허가 혹은 불허 할 수 있습니다. 만약 요청이 허가가 되었다면, 해당 요청은 방화벽으로 보내지고, 그 후, 인터넷에 연결하여 결과를 클라이언트에 전달(forward) 해줍니다.
프록시 서버는 캐시를 사용하여 자주 사용하는 데이터라면 요청을 보내지 않고, 캐시에서 가져올 수 있기 때문에, 성능 향상이 가능합니다.
Reverse Proxy
클라이언트가 인터넷에 데이터를 요청하면 해당 요청은 방화벽을 거쳐 리버스 프록시로 전달됩니다. 리버스 프록시가 이 요청을 받아 내부 서버에서 데이터를 받은 후 클라이언트에 전달합니다.
클라이언트 내부 서버에 대한 정보를 알 필요 없이 리버스 프록시에만 요청하게 됩니다.
내부 서버 (WAS) 에 직접적으로 접근한다면 DB에 접근이 가능하기 때문에 중간에 리버스 프록시를 두고 클라이언트와 내부 서버 사이의 통신을 담당하게 됩니다.
또한 내부 서버에 대한 설정으로 로드 밸런싱(Load Balancing) 이나 서버 확장 등에 유리합니다.
차이점
1. End Point
Forward Proxy 는 클라이언트가 요청하는 End Point 가 실제 서버 도메인이고, 프록시는 둘 사이의 통신을 담당해 줍니다.
Reverse Proxy 는 클라이언트가 요청하는 End Point 가 프록시 서버의 도메인이고, 실제 서버의 정보는 알 수 없습니다.
2. 감춰지는 대상
Forward Proxy는 클라이언트가 감춰집니다.
요청받는 서버는 포워드 프록시 서버를 통해서 요청을 받기 때문에 클라이언트의 정보를 알 수 없습니다.
Reverse Proxy는 반대로 서버가 감춰집니다.
클라이언트는 리버스 프록시 서버에게 요청하기 때문에 실제 서버의 정보를 알 수가 없습니다.
References
https://bcp0109.tistory.com/194
Forward Proxy, Reverse Proxy 정의와 차이점
Proxy 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기
bcp0109.tistory.com
'network' 카테고리의 다른 글
Sticky Session (0) | 2021.12.05 |
---|---|
[SSH] known_hosts와 authorized_keys (0) | 2021.12.05 |
SSH (Secure Shell) (0) | 2021.11.07 |
IP 주소 & 서브넷 마스크(Subnet Mask) 정리 (0) | 2021.10.31 |
Web, Web Server, Web Application Server(WAS) (0) | 2021.09.26 |