Atenção: Este arquivo padrão não é suficiente para nossa solução, vamos estudar linha a linha para ajustá-lo corretamente:
A - WhereZiproxy
WhereZiproxy = "/home/juro/bin/ziproxy"
Define o local onde está o executável de ziproxy. Este parâmetro só tem efeito se você estiver usando netd como servidor tcp, nos demais servidores este parâmetro é ignorado. O valor que nos atende é:
WhereZiproxy = "/usr/local/bin/ziproxy"
B - Port
Port = 8080
Define a porta onde ziproxy receberá as requisições dos clientes http. Este parâmetro só tem efeito se você estiver usando netd como servidor tcp, nos demais servidores este parâmetro é ignorado. O valor padrão nos atende.
C - OnlyFrom
OnlyFrom = "127.0.0.1"
Define os endereços ip dos clientes que podem usar o serviço ziproxy, pode ser um único endereço ip, como no exemplo acima, como também uma faixa de endereços. Exemplo:
OnlyFrom = "192.168.10.1-192.168.10.89"
Vamos supor que o servidor BABA ACESSO concede aos clientes endereços ip não roteáveis na Internet, como por exemplo, a rede classe A - 10, então o valor que vai nos atender será:
OnlyFrom = "10.10.1.1-10.10.1.89"
Este parâmetro só tem efeito se você estiver usando netd como servidor tcp, nos demais servidores este parâmetro é ignorado. Usando inetd você pode usar os arquivos
hosts.allow e
hosts.deny para configurar redes permitidas e negadas respectivamente.
D - NetdTimeout
NetdTimeout = 240
Esta opção não é legal, ela define que se ninguém conectar-se ao ziproxy em 240 segundos, o netd irá abandonar o serviço. O valor que nos atende será:
NetdTimeout = 0
Assim ele ficará escutando conexões independente do fato de ter alguém usando ou não. Este parâmetro só tem efeito se você estiver usando netd como servidor tcp, nos demais servidores este parâmetro é ignorado.
E - LogFile
LogFile = "%j-%Y.log"
Define o arquivo de log das requisições feitas ao ziproxy. Este parâmetro é válido para todos os servidores tcp usados. As variáveis %j e %Y são baseadas nas variáveis do comando "date" do
Linux e você pode definir da forma que quiser. O valor que nos atende é:
LogFile = "/var/log/ziproxy-%Y%m%d.log"
F - LogPipe
LogPipe ={"bzip2", "-9cq", "-"}
Parâmetro usado apenas pelo netd, ignorado nos demais servidores. Os valores entre chaves são {"comando", "argumento1", "argumento2"}. Se o parâmetro LogFile estiver definido, a saída do log será gravada nele.
G - ZiproxyTimeout
ZiproxyTimeout = 120
Tempo que o ziproxy irá esperar pela resposta da sua requisição ao servidor http no qual ele está buscando a página. Se o tempo limite definido aqui for atingido, ele irá abortar e retornar o erro. Importante definir aqui um tempo superior ao usado pelo Squid, pois evitará processamento desnecessário do ziproxy, uma vez que ele depende da resposta do Squid. O valor padrão nos atende.
H - MaxSize
MaxSize = 4194304
Tamanho máximo em bytes do arquivo que será processado e compactado. Definir um valor aqui ajuda muito na velocidade do atendimento dos pedidos. Uma imagem JPEG de 1 MB pode demorar a ser processada, tornando o processo lento, um bom valor seria 600 kb, valor 0 consideraria o tamanho ilimitado. O valor que nos atende será:
MaxSize = 524288
I - UseContentLength
UseContentLength = false
Valor definido como false ou true. Se for definido true, o ziproxy só enviará os dados ao browser depois de ter calculado o tamanho do arquivo e enviado a linha ContentLength no cabeçalho de resposta ao browser. Embora cause lentidão em alguns milésimos de segundos (muito pouco), pode evitar problemas, pois o navegador do cliente pode não saber quando abortar a conexão por causa do download de um arquivo de tamanho desconhecido.
Se você definiu um valor baixo em MaxSize, pode desabilitar esta opção. O valor padrão (false) nos atende aqui.
J - Compressible
Compressible = {
"shockwave", "msword", "msexcel", "mspowerpoint", "rtf", "postscript",
"java", "javascript", "staroffice", "vnd.", "futuresplash",
"asp", "class", "font", "truetype-font", "php", "cgi", "executable",
"shellscript", "perl", "python", "awk", "dvi"
}
Define os tipos de arquivos que serão compactados pelo ziproxy. As opções padrões são excelentes, mas caso algum cliente reclame de erros em algum tipo de arquivo baixado, você pode vir aqui e retirar da lista. O valor padrão nos atende perfeitamente.
K - ImageQuality
ImageQuality = {75,75,75,75}
Define em quantos porcento as imagens jpeg serão compactadas. Os valores podem variar de 0 a 100, ou -1 a -100. Os quatro números são usados da seguinte maneira:
- Para imagens com menos de 5000 pixels.
- Para imagens entre 5000 e 50000 pixels ou uma dimensão é menor de 150 pixels.
- Para imagens entre 50000 e 250000 pixels.
- Para imagens com mais de 250000 pixels.
O tamanho em pixels definido acima é calculado pelo ziproxy considerando with x height. A qualidade é baseada na cor.
Lembre-se: Embora uma imagem possa ser enquadrada no parâmetro 4, ela só será alterada se seu tamanho em bytes for menor do que o definido na opção MaxSize. Se a opção MaxSize for definido como 0, isto é, sem limite, as imagens serão alteradas normalmente.
Valores negativos definem em quanto a qualidade será subtraída. Se estiver -10 e a imagem atualmente for 90, o resultado será 80.
Ser o valor for definido como 0 (zero), a imagem não será alterada.
Exemplo: ImageQuality={-15,20,25,0}: As imagens menos de 5000 pixels serão convertidas ao JPEG com qualidade de 15. As imagens entre 5000 e 50000 pixels serão convertidas ao JPEG com qualidade de cor 20. As imagens entre 50000 e 250000 pixels serão convertidas ao JPEG com qualidade de cor 25. As imagens maiores de 250000 pixels ficarão inalteradas.
Caso o parâmetro ImageQuality seja omitido, o ziproxy irá considerar 75 para os quatro parâmetros.
O valor que nos atende:
ImageQuality={-15,60,65,70}
L - JP2Rate
JP2Rate={0,0,0.04,0.04}
Define como tratar imagens padrão jpeg 2000. Infelizmente não achei uma explicação clara na web, no Google só apareceram 4 resultados na época que estava criando este artigo. Os melhores valores (achei em um fórum) são:
JP2Rate={0.1,0.08,0.04,0.02 }
Vale lembrar que é necessário que o browser tenha o plug-in do JPEG2000 para que imagens desse formato sejam exibidas. Você pode fazer o download do plug-in em
http://www.morgan-multimedia.com/JPEG2000/.
M - NextProxy
NextProxy="host.name"
Este parâmetro não aparece no arquivo padrão. Sem ele, o provedor exemplo BABA ACESSO tornaria a conexão do usuário dial-up mais rápida, mas não poderia economizar banda com a web. O valor definido pode ser endereço ip ou FQDN. A porta de acesso do proxy será definido no próximo parâmetro. O valor que nos atente é:
NextProxy="127.0.0.1"
Vale lembrar que o Squid está na mesma maquina em que estamos instalando o ziproxy.
N - NextPort
NextPort=3128
Define qual a porta do proxy definido em NextProxy escuta requisições dos clientes. No arquivo de configuração do Squid que usamos no capítulo anterior, usamos a porta 3128. O valor que nos atende então será:
NextPort=3128
FIM.
O conteúdo do
ziproxy.conf ficou assim: