SW/WEB WAS

[Apache] Proxy란? Proxy 사용 목적, 종류, 설정 방법까지

yeit 2024. 9. 25. 20:07
728x90

 

 

Proxy란?

  • Proxy란 ‘대리’라는 의미로, 클라이언트와 서버 간의 통신을 중계하는 중간 매개체를 말한다.
  • 중계 기능을 수행하는 주체가 바로 Proxy Server이다.
  • Proxy Server는 클라이언트와 서버 사이에 위치하여 클라이언트의 요청을 받아서 서버로 전달하고, 서버의 응답을 받아서 클라이언트에게 전달한다.
  • Client <-> Proxy Server <-> Server

 

 

 

Proxy를 사용하는 이유

  • 보안 : 프록시를 통해 클라이언트나 내부 서버의 실제 IP 주소를 숨길 수 있어, 보안을 향상시키고 개인 정보를 보호할 수 있다.
  • 접속 우회 : 프록시를 사용하여 클라이언트의 실제 위치를 숨겨 다른 위치에서 접속한 것처럼 우회할 수 있다.
  • 로드 밸런싱 : 트래픽을 여러 서버로 분산하여 가용성을 향상시킬 수 있다.
  • 캐싱 : 이전에 검색한 콘텐츠를 저장하여 클라이언트에게 제공함으로써 응답 시간을 개선할 수 있다.

 

 

Proxy 종류

1. Forward Proxy

  • 목적 : 클라이언트를 대신하여 외부 서버에 접근하는 역할
  • 위치 : 클라이언트 앞
  • Proxy 서버 통신 대상 : Client <-> Proxy Server
  • 감춰지는 대상 : 클라이언트 정보
  • 동작 : 클라이언트는 포워드 프록시를 통해 외부 서버에 요청을 보냄 -> 포워드 프록시는 클라이언트를 대신하여 외부 서버에 연결 -> 서버로부터 응답을 받으면 포워드 프록시는 클라이언트에게 전달

 

 

2. Reverse Proxy

  • 목적 : 서버를 대신하여 클라이언트의 요청을 받아 처리하고, 결과를 클라이언트에게 전달해주는 역할
  • 위치 : 내부망 서버 앞
  • Proxy 서버 통신 대상 : Proxy Server <-> 내부 서버
  • 감춰지는 대상 : 내부 서버 정보
  • 동작 : 클라이언트는 리버스 프록시에게 요청을 보냄 -> 리버스 프록시는 로드 밸런싱, SSL 암호화, 캐싱 등의 기능을 수행한 후, 요청을 전달 -> 서버는 응답을 리버스 프록시로 보내고, 리버스 프록시는 클라이언트에게 응답을 전달

 

 

 

 

설정 방법

1. Proxy 설정

httpd.conf 파일에서 ProxyPass와 ProxyPassReverse 지시어를 사용하여 프록시를 설정한다.

ProxyRequests On

ProxyPass /test/ http://test.server.com/
ProxyPassReverse /test/ http://test.server.com/

추가로 문서(HTML 등) 내의 URL은 프록시를 통해 전달될 때 변경되지 않으므로, 문서 내의 링크는 절대 경로가 아닌 상대 경로로 작성해야 한다.

 

2. 로드밸런싱 설정

mod_proxy_balancer를 사용하여 로드 밸런싱 클러스터를 생성한다. 아래의 예처럼 설정하면 /application URL에 대한 요청이 오면 mycluster에 정의된 두 서버로 부하가 분산된다.

<Proxy balancer://mycluster>
   BalancerMember http://192.168.1.50:80 
   BalancerMember http://192.168.1.51:80
</Proxy>

ProxyPass /application balancer://mycluster/

 

특정 서버가 두 배의 트래픽을 수용하도록 지정할 수도 있다.

BalancerMember http://192.168.1.51:80 loadfactor=2

 

3. 접근 제어 설정

특정 IP 대역만 접근할 수 있도록 제어하는 것도 가능하다.

<Proxy *>
   Order Deny,Allow
   Deny from all
   Allow from 192.168.1.0/24
</Proxy>

 

 

728x90