Em raros casos o gargalo se encontra entre o servidor de internet e o cliente. O ziproxy é um software que ajudará você a compactar e reduzir drasticamente o tamanho de arquivos (html, texto e imagens) antes de enviar para o cliente no link reduzido (discado por exemplo).
Iremos agora configurar o ziproxy, não há nada de difícil entendimento e são poucas linhas, veja cada uma das opções bem explicadas abaixo.
Edite o arquivo /etc/ziproxy.conf (se não existir, crie) e informe suas opções.
Port
Porta tcp onde o ziproxy irá esperar por pedidos e conexões http. Ex.:
Port = 8081
OnlyFrom (opcional)
Rede ou ip que terá permissão para se conectar ao ziproxy. Essa opção não é declarada por padrão, assim o ziproxy aceita conexões de qualquer host. Proteja o acesso ao ziproxy através do firewall Linux iptables. Ex.:
ONlyFrom = "192.168.0.0/16"
NetdTimeout
Define o tempo em segundos que o ziproxy ficará em execução esperando por conexões antes de se fechar. Essa opção não é boa. Recomendo deixar como 0 (zero), assim ele sempre ficará em execução. Ex.:
NetdTimeout = 0
LogPipe (opcional)
Define o programa e os parâmetros do programa para o qual o ziproxy
enviará as saídas de log antes de gravá-las no arquivo de log. Ex.:
LogPipe ={"bzip2", "-9cq", "-"}
LogFile (opcional)
Define o arquivo de log do ziproxy (que suporta variáveis de tempo para auto-rotação). Recomendo não definir esta opção. Ex.:
LogFile = "%j-%Y.log"
AccessLogFileName (opcional)
Define o arquivo de log de acesso (parecido com Squid). Ex.:
AccessLogFileName = "/var/log/ziproxy/access.log"
PasswdFile (opcional)
Define o arquivo de usuários e senhas para acesso ao proxy. O login e a senha devem estar na mesma linha separados por dois pontos (:) sem espaço. A senha não pode ser criptografada. Ex.:
PasswdFile="/usr/local/ziproxy/ziproxy.passwd"
NextProxy e NextPort (opcional)
Define o ip e a porta do próximo proxy. Essa opção permite que o ziproxy seja integrado com o Squid. Dessa maneira o Squid faz o cache e o ziproxy compacta antes de enviar para o usuário. Ex.:
NextProxy="127.0.0.1"
NextPort=8080
TransparentProxy (opcional)
Ativa o suporte a proxy transparente. Se não estiver ativo, o ziproxy aceitará somente conexões diretas a ele. Ex.:
TransparentProxy = true
ViaServer (opcional)
Se ativado, o ziproxy enviará o cabeçalho "Via" para impedir loops. Ex.:
ViaServer = "something"
ZiproxyTimeout
Define o tempo em segundos que o ziproxy irá aguardar pela resposta do host remoto antes de desistir. Ex.:
ZiproxyTimeout = 120
MaxSize
Define o tamanho máximo em bytes dos arquivos que serão processados pelo ziproxy. Se um arquivo for maior que o tamanho especificado, o ziproxy apenas o encaminhará ao cliente. Ex.:
MaxSize = 4194304
MinTextStream
Define o tamanho em bytes que serão armazenados compactados na memória antes de iniciar o envio ao cliente. Ex.:
MinTextStream = 20000
UseContentLength
Define se será usado o cabeçalho ContentLength que define o tamanho do arquivo a ser enviado. Ex.:
UseContentLength = false
Compressible
Define os tipos a serem compactados pelo ziproxy. O tipo é definido no cabeçalho ContentType, por exemplo: application/x-shockwave. Ex.:
ProcessJPG
Define se o ziproxy irá comprimir imagens JPEG. Ex.:
ProcessJPG = true
ProcessPNG
Define se o ziproxy irá comprimir imagens PNG. Ex.:
ProcessPNG = true
ProcessGIF
Define se o ziproxy irá comprimir imagens GIF. Ex.:
ProcessGIF = true
AllowLookChange
Define se o ziproxy irá comprimir imagens GIF que
contenham transparência ou animação. Recomendável
desativar, assim o ziproxy não prejudicará esses GIF's. Ex.:
AllowLookChange = true
PreemptNameRes, PreemptNameResMax e PreemptNameResBC
Define se o ziproxy irá adiantar a resolução de nomes FQDN contidos
em textos HTML processados. Esse recurso é interessante quando
se deseja manter um cache de dns rico. Por padrão essas opções não são
usadas. Ex.:
ImageQuality
Define em quantos por cento as imagens 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. 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. Caso o parâmetro ImageQuality seja omitido, o ziproxy irá considerar 75 para os quatro parâmetros. Ex.:
ImageQuality = {20,15,15,15}
JP2Rate
Define a qualidade de compressão de imagens JP2, os quatro valores seguem a mesma regra do parâmetro acima. Ex.:
JP2Rate={0,0.1,0.04,0.03}
ModifySuffixes
Opção reservada para futuras versões, mantenha desativado. Ex.:
ModifySuffixes = false
(Erros personalizados) (opcional)
Define os arquivos quem contém a mensagem a ser exibida
de acordo com cada erro HTTP. Ex.:
Termina aqui o arquivo de configuração explicado. No meu caso tenho o Squid rodando no mesmo servidor, na porta 8080. Irei executar o ziproxy na porta 8081. Meu ziproxy.conf segue abaixo:
[2] Comentário enviado por edsonjbueno em 01/08/2006 - 18:12h
fiz tudo igual esta ai em um debian rc2, mas não navega de jeito algum tambem tenho o squid que esta funcionando blz, confgiurado na porta 3128, e o ziproxy na porta 8081, e configurado no explorer tambem no firefox e nada o conf esta igual a este ai não mudei nada somente a rede claro;... parece que esta faltando dns, mas como, não consegui enteder...
[3] Comentário enviado por patrickbrandao em 02/08/2006 - 08:06h
Olá Edson,
verifique se o software está rodando:
ps ax | grep ziproxy
e verifique também se a porta está aberta:
nmap localhost -p 8081
Se tiver firewall, desative para testar, o dns se configura em
/etc/resolv.conf
[6] Comentário enviado por netgate em 03/08/2006 - 12:52h
Patrik nos do forum amamos a liberdade, por que vc nao torna seu MyAuth Gateway software livre e open sorce. Lembre-se que a liberdade so traz o crescimento
[7] Comentário enviado por patrickbrandao em 03/08/2006 - 14:18h
O que o MyAuth tem a vez com o artigo?! Tem soluções iguais a ele gratuitas, chillispot, notcatsplash, entre outros. Softwre livre nem sempre enche conta corrente! Eu contribuo muito com software livre, principalmente documentando, coisa que facilita e insentiva o uso e participação no desenvolvimento.
[12] Comentário enviado por mf_alves em 11/08/2006 - 11:32h
Bom pessoal... eu segui os passos certos criei o /etc/ziproxy.conf mas ao tentar rodar o ziproxy deu a seguinte mensagem
Starting Ziproxy /usr/local/bin/ziproxy: error while loading shared libraries: libungif.so.4: cannot open shared object file: No such file or directory
OK
ja tentei procurar via apt mas não encontra a livraria...
estou usando um Debian.. com Squid ja rodando normal.
Caso alguem tenha a resolução do problema ficarei grato....
[14] Comentário enviado por marcosantiago em 23/09/2006 - 00:33h
Galera é o seguinte....
Tenho squid com autenticação rodando numa boa na porta 3128...desativei o squid para fazer o teste com o ziproxy e funcionou, mas quando ativo o squid e o ziproxy...não funciona...coloquei as funções:
NextProxy="127.0.0.1"
NextPort=3128
Mas não foi de jeito nenhum...
Uso o slackware 10.2 ! Se puderem ajudar desde já agradeço...
Ja ia esquecendo !
Parabéns Patrick !
[16] Comentário enviado por drcfilho em 18/10/2006 - 00:40h
me tira uma duvida
se eu coloco a porta 8080 que é a do squid.. o que aconteceria?
Quando vou iniciar:
#etc/rc.d/rc.ziproxy start
Starting Ziproxy /etc/rc.d/rc.ziproxy: line 20: /var/run/ziproxy.pid: Arquivo ou diretório não encontrado
OK
[18] Comentário enviado por cytron em 16/11/2006 - 17:40h
Legal esse ziproxy, estou testando ele no meu isp wireless, o ziproxy é tão simples que nem precisa de tutorial, o próprio ziproxy.conf já explica tudo. Mas esse guia do Patrick explica melhor do que os termos em inglês no conf.
Parabéns Patrick, se não fosse esse artigo eu nunca teria ouvido falar desse esquema. Eu sempre pensei numa coisa assim, mas jamais pensei que estaria por aí.
Agora estou com uma grande dúvida...
Será que o processamento para compactar no server e descompactar no cliente levaria mais tempo do que usar o squid sem passar pelo ziproxy???
Fiz uns testes aqui... não ví diferença na velocidade, mas ví diferênça na qualidade das imagens.
Ou seja, será que vale apena? Sobrecarregar o servidor fazendo compactação para todos os usuários? Se ao menos a compactação pudesse ser armazenada em cache, pois cada vez que é requisitado o mesmo objeto, o ziproxy comprime tudo denovo! Perda de tempo.
E o ziproxy tá com um bug, desabilitei a compressão de imagens mas ele ainda comprime.
Olhando no squid.conf parece que tem como fazer compressão também... será que é isso mesmo ou eu entendi errado?
[19] Comentário enviado por cytron em 26/11/2006 - 19:16h
Poxa! Ninguém respondeu! Será que só eu estou testando o ziproxy?
Tudo bem! Aí vai outra, o zíproxy tá ficando estranho, agora quando dou um ps x para ver os processos, aparecem várias instâncias do ziproxy, "apesar de não ter ninguém navegando". Mas quando dou um stop todas elas somem, se tento matar apenas uma delas com um kill -9 aparecem várias outras. Se dou um start aparecem outra quantidade. Na primeira vez que usei ele estava tudo normal, apenas uma instância. Apesar dele ainda funcionar normal.
Fiz novos testes de desempenho e repito, ainda não ví benefício do uso. Nem mesmo naquela antecipação de resolver ips (50 por default).
ainda não testei o ziproxy em grande escala, nos próximos dias estarei fazendo isso e postarei aqui o resultado.
Vamos lá galera, vamos espremer o ziproxy para ver no que vai dar. Com a revolução da wireless em breve terá muita gente interessado nesse daemon, nosso conhecimento será útil a essas pessoas.
[20] Comentário enviado por patrickbrandao em 27/11/2006 - 14:33h
Olha só, sua duvida nao tem nada a ver com ziproxy, todo software decente que atende clientes em demanda cria um processo PAI e varios processos FILHOS que irão atender cada nova requisição.
[21] Comentário enviado por pp1rp em 30/03/2007 - 15:09h
Existe um erro no ultimo passo da instalação. Estou usando a distro 9.1 do slackware com squid rodando normalmente. Segue abaixo os erros:
root@px2:/usr/local/src/ziproxy-2.2.1# make
make: *** No targets specified and no makefile found. Stop.
root@px2:/usr/local/src/ziproxy-2.2.1# make install
make: *** No rule to make target `install'. Stop.
root@px2:/usr/local/src/ziproxy-2.2.1# /etc/rc.d/rc.ziproxy start
Starting Ziproxy /etc/rc.d/rc.ziproxy: line 20: /usr/local/bin/ziproxy: No such file or directory
OK
Gostaria da ajuda de voceis para resolver esse problema.
Obrigado.
[22] Comentário enviado por cytron em 06/04/2007 - 13:02h
Estranho! Este erro é porque o make não está encontrando o Makefile, verifique se existe o arquivo Makefile (sem extensão), caso não exista ele foi apagado, baixe novamente o pacote que tudo vai dar certo. Mas não pega desse link que o Patrick tá mostrando não, vai direto na página do projeto que tem versão nova lá, a minha é a 2.1.1
[23] Comentário enviado por cytron em 06/04/2007 - 13:22h
Xiiiii!!! Prometi postar o resultado do meu teste com o ziproxy e acabei esquecendo, mas aqui está:
Não foi muito satisfatório, isso porque não agilizou significamente a ponto de valer a pena, talvez o motivo não seja o ziproxy, mas fora isso... Vários sites contendo flash começaram a dar problemas, devido a compactação do flash algumas vezes acontecia algum erro na compactação fazendo com que o flash não abrisse, o erro foi mais visível em sites bancários, após reiniciar o ziproxy o conteúdo em flash funcionava algumas horas, mas depois começava a não abrir novamente, bastava reiniciar o ziproxy pra tudo voltar ao normal.
Mesmo desabilitando a compressão de imagens ainda assim o ziproxy fazia compressão.
A resolução de nomes funcionou normalmente.
Para resumir, a minha opinião:
O ziproxy é uma excelente idéia e um grande recurso, no entanto, ainda está muito novinho, precisa amadurecer e quem sabe lá na versão 3 já esteja pronto para um mercado mais exigente.
O que eu fiz?
Proxy/cache transparente na porta 80
Ziproxy na porta 8080
Uma vez por mês envio um e-mail para meus clientes avisando que opcionalmente, podem configurar no navegador o proxy para a porta 8080 usufruindo assim da navegação compactada para maior velocidade.
Explico os possíveis problemas, as vantagens e tudo mais.
Resultado:
Os clientes estão satisfeitos por terem a opção de navegação acelerada, responderam a uma pesquisa para dizer se a aceleração era satisfatória, 70% disseram que sim.
É isso aí pessoal, qualquer dúvida pode dizer.
Aviso: Dificilmente vou passar por este artigo novamente, por tanto, se quiser falar comigo, me mande uma mensagem.
[25] Comentário enviado por lopeston em 27/10/2007 - 01:43h
olá amigo, isso compensa usar em um server banda larga ? wireless ? com conexoes de 256 e 512k ? ou nao da muita diferenca ? muito obrigado, otimo tópico.
abraços
[26] Comentário enviado por buzaneli em 06/12/2007 - 23:47h
olá boa noite
eu tenho um servidor debian etch rodando o squid 2.6 uma beleza
instalei o ziproxy, está tudo certo como vc esplicou o dns está funcionado o ziproxy abriu a porta 8080, mas quando eu coloco no navegador mozila, o endereço do ziproxy, eu digito um site qualquer não aparece pagina nenhuma no meu navegado ela fica em branco, e no log do ziproxy ele diz que já acessou a pag vc pode me explicar o porque disso???
[27] Comentário enviado por martoss em 20/12/2007 - 09:53h
Nao consegui o rc.ziproxy start pois o link do artigo está quebrado, segui todos os passos e não deu nenhum erro, parei neste ponto, por não encontrar o script de inicializacao, se alguem puder me ajudar, favor mandar para martoss@hotmail.com.