Você deve configurar um proxy.pac .
O que é um proxy.pac
Este é um pequeno arquivo Javascript que você pode hospedar no seu computador. Você alimenta sua configuração de rede do navegador da Web com esse arquivo e seu método FindProxyForURL(url,host)
será chamado para rotear todos os URLs que seu navegador precisa acessar.
Este método Javascript pode usar um conjunto de funções de teste pré-definidas úteis e deve retornar:
-
"DIRECT"
para ignorar proxies e tentar conectar-se diretamente à internet para esse URL -
"PROXY ip:port"
para rotear para o proxy fornecido (IP / port) - ou várias opções separadas por
"; "
para descrever uma cadeia com failover
Essa configuração torna muito fácil descrever regras de roteamento abrangentes com base na URL à qual você está se conectando ou até mesmo no endereço IP do computador (rede doméstica / da empresa) e no dia da semana (dias úteis / finais de semana).
Arquivo de exemplo
Aqui está um exemplo interessante para você ver:
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";
}
Como isso é Javascript, é claro que você pode criar e usar funções e variáveis auxiliares particulares.
Leitura adicional
Você encontrará vários documentos pela Internet. Entre outros:
- findproxyforurl (site dedicado)
- Documentos de suporte da Cisco
- Microsoft technet
- Wikipedia
Última dica
Recomendamos que você selecione apenas FindProxyForURL
result do argumento do host ou o protocolo de URL. Especialmente, o roteamento de várias URLs de um único site por meio de diferentes IPs externos nem sempre é suportado, pois alguns sites esperam que um usuário tenha um endereço IP estável durante toda a navegação.
Um monte de exemplo de balanceamento de carga tem esse lado negativo.