dev_dbdb1114

ProxyServer에 대해서 본문

프로그래밍/server

ProxyServer에 대해서

dbdb1114 2023. 7. 5. 14:52

비전공자인 나에게 ProxyServer는 생소했다.  그래서 공부했다. ProxyServer가 뭘까요? 

이런 저런 유튜브 영상을 봤다. 약 5개 정도 봤는데 모두 하나같이 하는 말은 

대신 처리하는 서버.

 

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

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

losskatsu.github.io

위 영상들을 확인했고, 더해서 여타 위키백과 같은 곳을 보긴 했지만 얼추 저 정도만 보면 대충은 이해할 수 있었다.

정확히 이해하기 위해서는 OSI 7계층이나 DoD 분류 등을 알아야 하는 것 같은데 지금 내가 공부 흐름을 위해서 너무 많은 시간을 쏟을 수 없기에 천천히 공부해보기로 하고 완급조절을 하면서 프록시 서버에 대해서만 공부했다. 그렇게 간단하게 알 수 있었던건

  • Forward Proxy Server
  • Reverse Proxy Server

Forward Proxy

포워드 프록시는 네트워크로 들어가기 전에 있는 프록시 서버이다. 

  • 사용자의 아이피 주소가 숨겨진다.
  • 우회가 가능하다.
  • 프록시 서버 내에서 자주 사용되는 정보를 캐시했다가 같은 요청이 왔을 때 다시 전송해줄 수 있다. 

어디서 Forward Proxy를 써야할끼?

단적인 예를 들어보자면, Forward Proxy의 경우 기업의 네트워크를 예시로 들 수 있다. 자사의 네트워크를 보호하고 싶을텐데, 이 경우에 ForwardProxy를 세워두면, 어떤 웹 사이트를 방문하더라도 요청받은 웹 서버에서는 프록시 서버의 주소밖에 알 수 없다. 조금 더 Private하게 될 수 있다. 반대로 안 좋게도 쓰일 수 있는데 특정 사이트에서 우리 ip주소로 접근할 수 없게 막아놨을 때 프록시 서버를 통해서 해당 사이트에 우회할 수 있기도 하다.

 

결국 포워드 프록시 서버는 클라이언트의 정보가 숨겨진다는 것이 포인트이고, 그 포인트에서 확장하자면 보안적인 측면과 우회의 기능 두 가지를 볼 수 있는 것이다. 앞서 말했듯 캐싱기능도 가능하다.

 

Reverse Proxy

리버스 프록시는 네트워크로 들어간 후 응답서버를 만다기 전에 있는 프록시 서버이다. 즉, 응답서버의 바로 앞에 있다고 생각하면 된다. 

  • 서버에 들어오는 유해한 시도를 막아주는 역할을 할 수 있다. ( ex: ddos )
  • 서버의 주소를 숨길 수 있어서 좋다.
  • LoadBalancing; 많은 트래픽 발생시 서버를 분할해서 사용할 수 있다.

리버스 프록시의 경우 로드 밸런서 역할로 많이 사용된다. 그림과 같이 요청을 나눠줄 수 있는데 만약 대규모 트래픽이 발생하는 서버라면, 이런 기능이 필수적일 것이다. 더해서 서버의 보안에 기여할 수 있다. 만약에 reverse proxy server가 없다면, 응답서버로 바로 요청이 들어오게 되는데 아무리 보안을 신경써서 만들었다고 하더라도 위험이 없는것이 아니고, 만약 악의적으로 침투한 요청을 처리하다가, DB나 서버의 전반적인 것들이 털리게 된다면 아찔하다. 한 다리를 더 거치게 함으로써 조금 더 보안을 강화시키는 것이다. 

 

Summary 

프록시라는 것은 요청을 대신 받아 처리해주는 것이다. 

 

구조적인 측면 : 위치에 따라서 Forward Proxy와 Reverse Proxy가 있는데, Forward 프록시는 클라이언트의 요청을 네트워크로 보내주고, Reverse프록시는 클라이언트의 요청을 네트워크를 통해 받아서 서버로 보내준다.

기능적인 측면 : Forward는 클라이언트단에서 유의미하고, Reverse는 Sever단에서 유의미하다. 

 

 

내 결론

프록시 서버를 샘플로라도 만들어서 이해하고 공부해야겠다.

'프로그래밍 > server' 카테고리의 다른 글

MSA란 무엇인가?  (0) 2023.09.13
OAuth2.0, 인증과 인가  (0) 2023.09.12
이미지 호스팅 서비스 Cloudinary with React  (0) 2023.09.04
JWT토큰에 대해서  (0) 2023.07.19
세션은 무엇인가?  (0) 2023.07.18
Comments