Configuração Automática do Proxy

Existem vários métodos de configurar servidores para os clientes detectarem automaticamente proxys. Eu vi RFC's descreverem isto, mas não mantive o link. Alguém, por favor, adicione:

O padrão WPAD (Protocolo de Descobrimento Automática de Proxys Web - Web Proxy Autodiscovery Protocol): WPAD na Wikipedia

Referências

1. http://web.archive.org/web/20060424005037/wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html

Configuração Automática de URL

A maioria dos clientes da Web modernos suporta configuração de proxy usando uma URL de configuração automática. Esta é uma URL que aponta para um javascript simples que identifica o proxy a ser usado para cada solicitação. Estes podem ser bastante simples, ou incrivelmente elaborados (procure por documentação do Squid sobre como fazer balanceamento de carga ou hashing de URL de múltiplos proxies usando URLs de autoconfiguração). O cliente precisa ter o URL inserido manualmente em sua configuração. Outras técnicas de autoconfiguração são apenas extensões para identificar automaticamente a URL de autoconfiguração a ser usada.

Crie um arquivo de texto simples contendo o script autoconfigurar na raiz do seu servidor da web. Isso pode ter qualquer nome que você quiser, mas uma convenção não oficial parece ser proxy.pac. A URL de autoconfiguração torna-se http://your.web.server/proxy.pac. Um exemplo de proxy.pac é:

    function ["FindProxyForURL"](url,host)
    {
        if ( isPlainHostName(host) |||| localHostOrDomainIs(host, "your.local.domain") )
            return "DIRECT";
        return "PROXY your.proxy.server:8080; DIRECT";
    }

Isso diz ao navegador da Web para ir direto para nomes de host simples ou para hosts em seu domínio local.local, caso contrário, use seu.proxy.server, voltando a direcionar se estiver inativo.

O URL deve ser exibido com um tipo particular de mime, mas não tenho certeza do que o RFC especifica ou de quantos clientes realmente se importam com isso. O tipo Debian mime padrão de arquivos .pac é application/x-ns-proxy-autoconfig, e é isso que o apache exibe como.

Auto detecção baseada em DNS

Esqueci os detalhes exatos, mas um método para identificar automaticamente a URL de autoconfiguração é usar um nome DNS e um URL especiais para seu domínio. Alguns RFC ou outros especificam um URL no formato http://wpad.your.local.domain/wpad.dat. Observe que o nome do arquivo é diferente do padrão de fato do proxy.pac. A solução simples para isso é fazer com que wpad.your.local.deseque um CNAME no seu servidor web e coloque um link simbólico wpad.dat apontando para proxy.pac na raiz do seu site.

Note que o Debian não possui o tipo mime apropriado para o arquivo proxy.dat, então o apache servirá isto como text/plain. Isso é significativo para alguns navegadores, mas não para alguns outros. Você precisa configurar o Apache para forçar o tipo correto de mime sem decidir se todos os arquivos .dat são para configuração de proxy. O truque é configurar um host virtual no apache como wpad.your.local.domain e incluir o tipo mime na diretiva do host virtual.

Autoconfiguração baseada em DHCP

Não tenho certeza se é a mesma RFC, mas a URL de autoconfiguração também pode ser entregue aos clientes pelo DHCP. Eu acho que o IE é atualmente o único cliente que suporta isso. Para fazer isso, coloque o seguinte em seu /etc/dhcp3/dhcpd.conf:

    option wpad-url code 252 = text;
    option wpad-url "http://your.web.server/proxy.pac\n";

A nova linha é incluída para compensar a remoção do último caractere pelo IE 6.01.

Não posso deixar de sentir que o DHCP está tão ligado à inicialização de rede no nível do sistema operacional que os clientes que apenas executam em cima de um sistema operacional nunca o usarão. Apenas os clientes que estão totalmente integrados ao sistema operacional como o IE/win32 poderão tirar proveito disso.