A maioria dos navegadores que suportam Javascript também suportam arquivos de configuração automática de proxy (PAC) (não sou do tipo Netscape) ciente de um navegador compatível com JavaScript lançado neste século que não o faz). Os arquivos PAC contêm código JavaScript que é executado para determinar qual proxy (se houver) deve ser usado para cada solicitação.
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*.example.com")) {
return "DIRECT";
} else if (shExpMatch(host, "somewhere.else")) {
return "PROXY someproxy:8080";
} else {
return "PROXY default-proxy.example.com:3128";
}
}
Para ter uma configuração única para navegadores e outros aplicativos que não são compatíveis com Javascript, você precisará de um proxy que suporte proxies pai por URL.
OSquid é uma possibilidade, é um proxy de caching projetado para cargas altas e com muitos recursos. Veja O Squid seleciona o pai dependendo do URL solicitado? para exemplos de como configurar proxies pai por URL.
Wwwoffle é outra possibilidade. Esse proxy é strongmente orientado para ter um cache off-line e armazena em cache mais agressivamente do que o permitido pelos padrões HTTP, o que é um problema em alguns sites. Os proxies pai podem ser especificados por URL com padrões curinga (os arquivos de configuração padrão contêm exemplos comentados).