CS/ETC.

프록시 서버(Proxy), 포워드 프록시 서버(Forward), 리버스 프록시 서버(Reverse)

prden 2022. 8. 7. 20:29

1. 프록시 서버

프록시 서버란 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 프록시 서버를 사용하면 보안성, 성능, 안정성을 향상할 수 있다. 

2. 포워드 프록시 서버 (클라이언트와 가깝게)

흔히 말하는 '프록시 서버'는 포워드 프록시 서버를 의미한다. 클라이언트가 인터넷 웹서버에 요청을 보내면 중간에서 그 요청을 프록시 서버가 가로채고 프록시 서버는 해당 요청을 웹 서버에게 보낸 후 받은 응답을 클라이언트에게 전달한다. 

 1) 포워드 프록시 서버를 사용하는 이유?

  정부, 학교, 기업 등과 같은 기관에 속한 사람들이 기관 내에서 인터넷을 사용할 때 제한을 하기 위해 사용한다. 해당 기관에 속한 사람들이 그들이 방문하고자 하는 웹사이트에 직접적으로 방문하는 것을 방지하는 것이다. 

예를 들어 포워드 프록시 서버에 특정 rule을 추가해서 특정 사이트에 접속하는 것을 막을 수 있다.

 게다가, 포워드 프록시 서버를 사용하면 유저의 정체를 숨겨준다. IP주소를 역추적하려고 해도 프록시 서버IP만 알 수 있기 때문에 특정 유저의 정체 파악하기 어렵다.

3. 리버스 프록시 서버 (웹 서버와 가깝게)

포워드 프록시 서버는 클라이언트 앞에 놓여져 있는 반면, 리버스 프록시 서버는 웹 서버 앞에 놓여있다.

1) 리버스 프록시 서버를 사용하는 이유?

첫 번째로 로드 밸런싱에 사용한다. 대량의 트래픽을 감당하기 위해 리버스 프록시 서버를 여러 웹 서버 앞에 두고 특정 서버에 부하가 걸리지 않도록 로드밸런싱한다. 또한, 리버스 프록시를 사용하면 본래 서버의 IP주소를 노출시킬 필요가 없어서 DDoS같은 공격을 막는데 유용하다. 그리고 리버스 프록시 서버에는 성능 향상을 위해 캐시 데이터를 저장할 수 있다. 예를 들어 한국에 있는 사용자가 미국에 있는 웹서버에 접속할 때 리버스 프록시 서버가 한국에 있다면 한국에 있는 사용자는 한국에 있는 리버스 프록시 서버와 통신한다. 따라서 더 빠른 성능을 보여줄 수 있다. 

마지막으로 SSL암호화에 좋다. 본래 서버가 클라이언트와 통신할 때 SSL(or TSL)로 암호화, 복호화할 경우 비용이 많이든다. 그러나 리버스 프록시를 사용하면 들어오는 요청을 모두 복호화 하고 나가는 응답을 모두 암호화해주므로 클라이언트와 안전한 통신을 하며 서버에서 처리해야할 역할을 대신해줘 부담을 줄여준다. 

 

L2 : 맥주소를 기반으로 로드밸런싱

L3 : IP 주소를 기반으로 로드밸런싱

L4 : 전송계층에서 로드밸런싱

L7 : 응용계층에서 로드밸런싱

 

@참고 :

https://www.youtube.com/watch?v=u4O4zHdiFhk&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=95 

 

@참고 : https://losskatsu.github.io/it-infra/reverse-proxy/#2-%ED%8F%AC%EC%9B%8C%EB%93%9C-%ED%94%84%EB%A1%9D%EC%8B%9Cforward-%EC%84%9C%EB%B2%84%EB%9E%80 

 

[Infra] 리버스 프록시(reverse proxy) 서버 개념

리버스 프록시(reverse proxy) 서버 개념

losskatsu.github.io

 

'CS > ETC.' 카테고리의 다른 글

Sonatype Nexus  (0) 2022.12.23
Git revert, reset  (0) 2022.08.17
웹 표준, 웹 접근성  (0) 2022.07.22
팝업, 모달창  (0) 2022.04.29
브랜치 전략  (0) 2022.04.17