나가는 모든 트래픽에 대해 프록시 서버를 동적으로 변경합니다.

나가는 모든 트래픽에 대해 프록시 서버를 동적으로 변경합니다.

우리 대학에는 세 개의 프록시 서버가 있으며 모두 세 개의 서로 다른 서비스 제공업체에 연결되어 있습니다. 다른 순간에 다른 프록시는 다른 속도를 제공합니다(그 순간 해당 프록시를 사용하는 사용자 수에 따라 다름). 다른 순간에 브라우저(또는 다른 웹 애플리케이션)에서 프록시 서버 구성을 변경하는 데 시간이 많이 걸립니다. 나는 일종의 테스트를 수행하여 내 모든 웹 애플리케이션이 서로 다른 순간에 사용하는 프록시 서버를 동적으로 변경할 수 있는 스크립트를 작성하고 싶습니다.

나는 그것으로 시작할 수 없습니다. 내가 구현할 수 있도록 누군가 나에게 몇 가지 아이디어를 줄 수 있습니까?

답변1

당신은 그것을 사용할 수 있습니다요원 PAC또는데이터 파일

이는 단지 JavaScript일 뿐이며 인트라넷의 모든 웹 서버에서 이 파일을 호스팅하고 클라이언트 측에서 설정할 수 있습니다 http://webserever-ip/proxy.pac. 이 스크립트를 사용하면 다음을 수행할 수 있습니다.로드 밸런싱그리고 세 명의 대리인. 또한 이 자바 스크립트의 IP 범위를 사용하여 인트라넷이나 웹사이트 우회와 같은 다양한 기능으로 트래픽을 나눌 수 있습니다.

모든 클라이언트에서 이 스크립트를 자동으로 설정할 수 있습니다. 이를 위해서는 다음 옵션이 필요합니다.

  • 도메인 네트워크를 사용하는 경우 그룹 정책을 사용하여 Proxy.pac을 설정하세요.
  • DHCP를 사용하여 WPAD.DAT를 설정할 수 있습니다.
  • 도메인 명 시스템

답변2

단일 지점에서 프록시를 구성하려면 대상 주소 다시 쓰기에 iptables 규칙을 사용하는 라우터를 설정할 수 있습니다.

iptables -t nat -A PREROUTING -p tcp -d VIRTUAL_PROXY_IP --dport 80 -j NETMAP --to CURRENT_PROXY_IP

모든 애플리케이션과 브라우저는 VIRTUAL_PROXY_IP를 프록시로 사용하므로 이 특수 라우터를 통해 라우팅해야 합니다. 필요한 경우 CURRENT_PROXY_IP를 변경하도록 규칙을 변경할 수 있습니다.

이 접근 방식의 장점은 설정이 빠르고 관리가 쉽다는 것입니다. 단점은 세션이 열려 있는 일부 사용자가 간섭을 경험할 수 있다는 것입니다(세션 유형 및 업스트림 프록시 유형에 따라 다름). 또한 프록시를 변경하거나 수동으로 변경하려면 스크립트를 직접 작성해야 합니다.

sr_의 의견에서 제안한 더 나은 솔루션은 로드 밸런서를 설정하는 것입니다. LVS를 고려하거나HA 프록시

답변3

오징어를 사용한다고 가정하면동일한 표시 이름을 공유하는 두 형제 프록시가 나에게 적합한 것 같습니다. 나는 각각 Proxy1과 Proxy2라는 2개의 서버를 설정했습니다. 표시되는 호스트 이름은 프록시입니다. 이 시점에서 해야 할 일은 DNS에 Proxy라는 이름의 A 레코드를 만들고 Proxy1과 Proxy1의 IP 주소를 사용하는 것뿐입니다. squid.conf에서 형제로 설정하면 됩니다. 이봐http://horms.net/projects/redundant_linux_paper/lated/squid/hierarchies/concepts.html

답변4

간단한 해결책

로컬 호스트 파일에 프록시 서버의 호스트 별칭을 설정합니다.

192.168.1.1 chosenproxy #192.168.1.2 chosenproxy #192.168.1.3 chosenproxy

이제 이 별칭을 사용하도록 모든 애플리케이션을 구성하세요.http://chosenproxy:8080

그런 다음 다른 서버를 시도하려면 호스트 파일에서 IP 주소를 편집하면 됩니다.

관리형 포트 솔루션

포트도 변경해야 하는 경우에는 polipo와 같은 경량 브로커 중 하나를 사용하세요. Polipo는 기본적으로 포트 8123에서 실행되므로 각 응용 프로그램이 로컬로 실행되는 polipo를 통해 연결되도록 설정하십시오. 예를 들어 다음 설정을 사용하십시오.http://localhost:8123

그런 다음 다른 프록시 서버를 시도하려면 polipo 구성 파일( /etc/polipo/config)을 변경하여 올바른 상위 프록시 서버 및 포트 번호를 지정한 다음 polipo를 다시 시작하여 변경 사항을 활성화하십시오.

관련 정보