ago
Squid Proxy: Configurações Automáticas e Performance [atualizado 20/08/2008]
Descobri recentemente pra que serve a opção “Autodetectar as configurações de proxy para esta rede” existente nos navegadores. No caminho me deparei com algumas dicas de performance para o Squid. Então seguem dicas de performance e como configurar seu Squid para ser “Autodetectado” na rede, sem precisar ficar configurando micro por micro para usar o proxy.
Performance:
Basta alterar as seguintes opções no arquivo de configuração do Squid, normalmente em /etc/squid/squid.conf:. Caso elas não existam, adicione!
cache_mem 64 MB
cache_swap_low 95
cache_swap_high 98
maximum_object_size 16384 KB
maximum_object_size_in_memory 20 KB
cache_dir ufs /var/spool/squid 2048 16 256
A última opção especifica o tamanho do cache a ser alocado em disco, 2GB no caso (2048MB). Já experimentei 2048 64 64, 2048 64 256, 2048 256 256, mas pelo jeito 2048 16 256 é a melhor combinação, pelo menos para HDs comuns ATA/SATA.
A primeira opção especifica o quanto de memória RAM deve ser usada pelo Squid. Quanto mais melhor! Alias se o cache todo pudesse ficar em RAM, tudo ficaria muito mais rápido. O padrão dele é 8MB, bem mixuruca. Por isso sugiro pelo menos 64MB que já faz diferença. Se você tiver mais memória livre, aumente este valor, os usuários da rede vão agradecer.
As demais opções também se referem ao uso de memoria e ajudam a reduzir o acesso ao disco rígido, que é muito mais lento que memória RAM.
Depois para ativar as alterações:
service squid stop (ou sudo /etc/init.d/squid stop)
squid -z (ou sudo squid -z)
service squid start (ou sudo /etc/init.d/squid start)
Autodetecção do Proxy:
Bom, como vocês já devem saber, quando mais usuários na rede, mais trabalho para configurar o proxy deles, sem contar quando o usuário mexe nesta configuração tentando burlar as políticas de navegação da empresa. Proxy transparente ajuda mas serve apenas para a porta 80, ou seja, acesso a bancos e páginas seguras não vão funcionar automaticamente. Outra situação é quando você quer disponibilizar um acesso básico para usuários visitantes sem ter que mexer nas configuração de proxy deles. Os navegadores (Firefox, Internet Explorer, Opera, etc) normalmente já vem configurados para tentar descobrir automaticamente as configurações de proxy da rede, muito prático.
Resumindo esta “autoconfiguração” depende de 2 padrões/protocolos existentes, um tal de PAC e um tal de WPAD. Vamos configurar os 2 de uma vez para ser compatível com as diversas versões de navegadores.
Precisamos criar um arquivo que contém um JavaScript, na raiz de um servidor Web da rede. Pode estar no mesmo servidor do Squid ou em qualquer outro servidor da rede.
No meu caso: /var/www/html/wpad.dat
function FindProxyForURL(url, host) {
if(isPlainHostName(host) || isInNet(host, “192.168.0.0”, “255.255.255.0”) || dnsDomainIs(host, “speedtest.net”))
return “DIRECT”;
else
return “PROXY 192.168.0.88:3128”;
}
Observe no “if” que caso o site tentando ser acesso seja dentro de minha rede (192.168.0.0) ou seja o speedtest.net, a autoconfiguração diz para que seja acessado diretamente (DIRECT), sem passar pelo proxy. Caso contrario tudo vai passar pelo proxy de minha rede (192.168.0.88 na porta 3128).
Em seguida, vamos criar um link simbólico deste arquivo para outro (assim não precisamos ter 2 cópias do mesmo arquivo e ter que mante-los ambos atualizados).
ln -s /var/www/html/wpad.dat /var/www/html/proxy.pac
Adicione nas configurações do seu servidor web, neste caso o Apache, definições MIME para estes arquivos.
No meu caso adicionei ao /etc/httpd/conf/httpd.conf:
AddType application/x-ns-proxy-autoconfig .dat
AddType application/x-ns-proxy-autoconfig .pac
E reinicie seu Apache:
service httpd restart (ou sudo /etc/init.d/apache2 restart)
[Atualização Importante!]
Defina um host wpad dentro de seu domínio, apontando para o IP de seu servidor web. Exemplo de registro DNS:
wpad.sdev.com A 192.168.0.71
Este host deve fazer parte do domínio especificado no DHCP, conforme descrito abaixo. Por exemplo, se o navegador percebe que o sufixo de domínio é servidor1.cliente.sdev.com, ele vai tentar os seguintes endereços para encontrar o arquivo de configuração do proxy:
- http://wpad.servidor1.cliente.sdev.com/wpad.dat
- http://wpad.cliente.sdev.com/wpad.dat
- http://wpad.sdev.com/wpad.dat
Só falta o DHCP. Insira logo no começo junto com as outras “option”s (/etc/dhcpd.conf):
option domain-name “sdev.com”;
option wpad code 252 = text;
option wpad “http://192.168.0.71/wpad.dat\n”;
Observe que precisa definir um domínio para sua rede, e na terceira linha definir o caminho completo (URL) de onde acessar o arquivo de configuração que você criou. 192.168.0.71 é meu servidor Web com Apache. Teste este caminha de um navegador para confirmar! Ele deve oferecer para fazer o download do arquivo.
Agora reinicei seu DHCP:
service dhcpd restart (ou /etc/init.d/dhcpd restart)
Agora deixe seu navegar configurado para detectar as configurações de proxy automaticamente e faça seus testes para confirmar que ele esta navegando automaticamente pelo proxy da rede.
OBS:
- Cuidado ao copiar/colar estas configurações deste site, ou qualquer outro site. Possivelmente as áspas (“) serão convertidas para caracteres especiais (levemente inclinadas), o que gera erro nos arquivos de configuração. Verifique e re-digite as áspas.
- Testei no Nokia N95 e o browser nativo do Symbian não detecta automaticamente.
Links e Refs:
Alroger Filho
Olá amigo, e se o proxy tiver autenticação? Funciona também?
Porque eu quero que detecte automáticamente, mas que peça autenticação
Um abraço, aguardo retorno.
agosto 20th, 2008 at 7:28 pmSim! Outra grande utilidade.
agosto 20th, 2008 at 10:04 pm[…] Proxy: Configura??es Autom?ticas e Performance Squid Proxy: Configura??es Autom?ticas e Performance Link: Cafe TI – pra perder o sono. ? Blog Archive ? Squid Proxy: Configurações Automáticas e […]
novembro 1st, 2008 at 9:40 pmOlá amigo, fiz a configuração igual a sua, e nada do firefox 3 navegar
março 31st, 2009 at 11:49 pmo resto funciona tudo!! mas o firefox 3 merda não. to pensando em adotar novamente o velho e bom internet explorer nas máquinas windows e nas debian rodo via wine, por favor, me dê uma luz!!!
Ah, não diga isso!
abril 1st, 2009 at 2:23 pmSe você se refere a detecção automática, basta ativa-la nas configurações do Firefox, e por via das dúvidas apagar o cache fechar o Firefox e abrir novamente.
Lembre do wpad.dominio.com apontando para seu servidor HTTP que tem o arquivo wpad…
Infelizmente só funciona no IE. Já tentei de tudo, mas o firefox não aceita em modo automático.
abril 24th, 2009 at 3:02 amTem alguma dica para firefox aceitar o wpad em modo automático?
Obrigado!
Marcello, aqui funciona.
abril 24th, 2009 at 2:26 pmVocê colocou o Proxy em Automatico no Firefox?
Se voce pingar wpad.dominio.com (o dominio que seu servidor DHCP fornece) ele resolve para o IP correto do seu servidor HTTP onde o arquivos wpad está? Usando este IP você consegue navegar no http://IP para encontrar o arquivo wpad?
Olá!
julho 10th, 2009 at 10:57 pmAqui funciona com o Internet Explorer (via DHCP). Via DNS (que é o único jeito que o Firefox consegue obter) não tem jeito. Ele não consegue dar ping em wpad.meudomino.local . Não acha o domínio de jeito nenhum. Será que tem alguma coisa a mais que devo fazer? Eu configuirei corretamente o CNAME no DNS, o que será que estou errando?
Tobias, se você não consegue pingar o wpad.meudominio então o DNS está configurado errado ou o PC não está usando o DNS que você acha que está.
julho 11th, 2009 at 7:16 am