Вы должны настроить proxy.pac.
Что такое proxy.pac
Это небольшой файл Javascript, который вы можете разместить на своем компьютере. Этим файлом вы передаете конфигурацию сети вашего веб-браузера, и будет вызван его FindProxyForURL(url,host)
для маршрутизации всех URL-адресов, к которым должен обращаться ваш браузер.
Этот метод Javascript может использовать набор полезных предопределенных тестовых функций и должен возвращать либо:
"DIRECT"
чтобы обойти прокси и попытаться напрямую подключиться к Интернету по этому URL
"PROXY ip:port"
для маршрутизации на данный прокси (IP/ порт)
- или несколько опций, разделенных
"; "
чтобы описать цепочку с отказоустойчивостью
Такая настройка позволяет очень легко описать всеобъемлющие правила маршрутизации на основе URL-адреса, к которому вы подключаетесь, или даже на основе IP-адреса вашего компьютера (домашняя сеть / сеть компании) и дня недели (рабочие дни / выходные).
Пример файла
Вот интересный пример для вас:
function FindProxyForURL(url, host) {
// If the hostname matches, send direct.
if (dnsDomainIs(host, "intranet.domain.com") ||
shExpMatch(host, "(*.abcdomain.com|abcdomain.com)"))
return "DIRECT";
// If the protocol or URL matches, send direct.
if (url.substring(0, 4)=="ftp:" ||
shExpMatch(url, "http://abcdomain.com/folder/*"))
return "DIRECT";
// If the requested website is hosted within the internal network, send direct.
if (isPlainHostName(host) ||
shExpMatch(host, "*.local") ||
isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0") ||
isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0") ||
isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0") ||
isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0"))
return "DIRECT";
// If the IP address of the local machine is within a defined
// subnet, send to a specific proxy.
if (isInNet(myIpAddress(), "10.10.5.0", "255.255.255.0"))
return "PROXY 1.2.3.4:8080";
// DEFAULT RULE: All other traffic, use below proxies, in fail-over order.
return "PROXY 4.5.6.7:8080; PROXY 7.8.9.10:8080";
}
Поскольку это Javascript, вы, конечно, можете создавать и использовать частные вспомогательные функции и переменные.
дальнейшее чтение
Вы найдете кучу документации через Интернет. Среди прочего:
Последний совет
Я рекомендую вам выбрать только результат FindProxyForURL
из аргумента хоста или протокола URL. В частности, маршрутизация нескольких URL-адресов одного веб-сайта через разные внешние IP-адреса не всегда поддерживается, поскольку некоторые веб-сайты ожидают, что у пользователя будет стабильный IP-адрес в течение всей навигации.
Куча примеров балансировки нагрузки имеет этот недостаток.