전산직으로 살아남기

Proxy Server 이해하기 본문

Security/Web Application

Proxy Server 이해하기

케이마 2024. 5. 24. 16:27
728x90
반응형

1. 프록시 서버란?

프록시 서버(proxy server)는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리킵니다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 ‘프록시’, 그 중계기능을 하는 것을 프록시 서버라고 부릅니다.

 

프록시 서버를 사용하면 보안성, 성능, 안정성을 향상시킬 수 있으며 크게 포워드 프록시 서버(forward proxy server)와 리버스 프록시 서버(reverse proxy server)로 나뉩니다.

 

2. 포워드 프록시 서버란?

우리가 흔히 말하는 ‘프록시 서버’란 포워드 프록시 서버를 의미합니다. 프록시 서버는 아래 그림처럼 클라이언트 앞에 놓여있습니다. 다음 그림을 보면 클라이언트가 인터넷 웹서버에 요청을 보내면 중간에서 그 요청을 프록시 서버가 가로챕니다. 그리고 프록시 서버는 해당 요청을 웹서버에게 다시 보내고 웹서버에게 받은 응답을 다시 클라이언트에게 전달합니다.

포워드 프록시
포워드 프록시

 

이러한 특징을 가지는 포워드 프록시 서버는 왜 사용할까요? 우선 정부, 학교, 기업 등과 같은 기관은 해당 기관에 속한 사람들의 제한적인 인터넷 사용을 위해 방화벽을 사용합니다. 포워드 프록시 서버는 이런 제한을 위해 사용합니다. 즉, 해당 기관에 속한 사람들이 그들이 방문하고자 하는 웹사이트에 직접적으로 방문하는 것을 방지합니다. 이 말은 곧 포워드 프록시 서버는 기관에 속한 유저가 특정 컨텐츠에 접근하는 것을 방지하는데 사용된다는 말과 동일합니다.

 

3. 리버스 프록시 서버란?

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

 

리버스 프록시 서버
리버스 프록시 서버

 

리버스 프록시 서버는 로드 밸런싱에 사용됩니다. 유명한 웹 사이트는 하루에도 수백만명이 방문하는데 이때 발생하는 대량의 트래픽을 하나의 서버로 감당해 내기란 어려운 일입니다. 하지만 리버스 프록시 서버를 여러개의 서버 앞에 두면 특정 서버가 과부화되지 않게 로드밸런싱이 가능합니다.

 

또한 리버스 프록시를 사용하면 보안에 좋습니다. 리버스 프록시를 사용하면 본래 서버의 IP주소를 노출시킬 필요가 없기 때문에 해커들의 DDos 공격을 막는데 유용합니다. 대신 CDN과 같은 리버스 프록시 서버가 공격의 타겟이 될 수는 있습니다.

 

그리고 리버스 프록시 서버에는 성능 향상을 위해 캐시 데이터를 저장할 수 있습니다. 만약 어떤 한국에 있는 유저가 미국에 웹서버를 두고 있는 사이트에 접속할 때, 리버스 프록시 서버가 한국에 있다고 가정하겠습니다. 그러면 유저는 한국에 있는 리버스 프록시 서버와 통신합니다. 따라서 프록시 서버에 캐싱되어 있는 데이터를 사용할 경우에는 더 빠른 성능을 보여줄 수 있습니다.

 

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

 

 

 

출처

 

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

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

losskatsu.github.io

 

728x90
반응형

'Security > Web Application' 카테고리의 다른 글

REST API 이해하기  (0) 2024.06.05
웹서버과 WAS의 차이  (0) 2024.05.20
IIS Log 분석하기  (0) 2024.05.13
GET, POST 이해하기  (0) 2024.04.22