일상적 이야기들.

[TIL] Proxy Server...? 본문

프로그래밍

[TIL] Proxy Server...?

noveljava 2020. 11. 13. 17:18

Proxy Server에 대해서는 어설프게 어디선가 이름만 들어봤었다.
누군가에게 설명을 하려고 하니 못하기 때문에 이렇게 글을 정리한다.


Proxy Server

프록시서버는 클라이언트(End-User)가 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용프로그램을 가리킨다.
서버와 클라이트사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다.
출처. 위키피디아

정리를 하면, 내가(End-User) 네이버(서버)에 정보를 요청할때, 우리는 프록시를 통해서 요청이 가능하다.
나는 프록시에게, "네이버 페이지를 보여줘" 라고 요청을 하고, 프록시는 나를 대신해서 네이버의 페이지를 요청하여 나에게 전달을 해준다.

이렇게 하였을 때, 다음과 같은 장점을 가질 수가 있다.

  • 익명으로 컴퓨터를 유지 ( Server 입장에서는 데이터의 요청자는 내가(End-User) 아니라, Proxy Server가 된다 )
  • Proxy Server가 캐시를 이용하여, 서버의 입장에서 네트워크 병목현상을 막을 수 있다.
  • 내가(End-User) 악의적인 목적으로 서버에게 접근하는지 체크 및 보안 역할
  • 서버가 악의적인 목적으로 데이터를 전달하는지 체크 및 보안 역할

공개 프록시

공개프록시 또는 오픈프록시는 누구나 자유롭게 접속하여 사용할 수 있는 프록시 서버를 말한다.
나의 IP주소를 남기지 않고, 익명으로 활동하기 쉽기 때문에 이러한 서버들은 크래킹, 악성 코드 또는 바이러스 유포, 불법 행동 등에 악용되기 쉽다. 따라서, 많은 프로그램들은 공개 프록시를 검출하여 사용을 금지하는 방법을 사용한다.

해당 부분은 장점으로 말을 할 수도 있기도 하지만, 보안적인 측면에서 위험한 일들을 많이 할 수 있다.
단순한 예로, 악의적인 바이러스가 계속해서 유포하는데 유포자를 잡기 위해서 따라가는데 배포자가 프록시 서버를 잘 이용했다면 유포자를 잡을 수 있는 방법은 힘들어지기 때문이다.

리버스 프록시

리버스 프록시는 네트워크 병목현상을 막기 위해서 설계된 것처럼 보여진다. 실제 서버를 구성하는 서버개발자는 서버의 앞에 리버스 프록시 서버를 앞에 두고, End-user들의 요청을 1차적으로 리버스 프록시 서버가 받도록 설정을 한다.
이렇게 할 시에, 프록시 서버가 캐시를 이용하여 자주 요청되는 정보들은 실제 서버를 통하지 않고 End-User에게 전달을 해줄 수 있다.
그리고 또한, 실서버를 해킹하는 시도라던가, 무리하게 들어오는 DDOS의 공격에 대한 대비도 프록시 서버에서 설정을 하여 실서버의 부담을 줄여줄 수 있따.

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

Java Spring boot 맛보기  (0) 2021.08.28
Comments