[Tutorial] Habilitar a compactação de páginas no Apache e nginx

Dicas e conf's para servidores Linux
Avatar do usuário
tacioandrade
Administrator
Administrator
Mensagens: 110
Registrado em: 10 Jun 2013 22:03
Localização: Vitória da Conquista - Ba
Idade: 34
Contato:
Status: Offline

[Tutorial] Habilitar a compactação de páginas no Apache e nginx

Mensagem por tacioandrade »

E ai pessoal esse tutorial é uma boa para vocês que tem sites acessados por clientes com banda de internet baixas como smartphones, cidades do interior, etc, ou então que não se importam em perder um pouco de processamento a mais do servidor para entregar o conteúdo mais rápido para os clientes.

Pois bem, todos os navegadores do mercado atualmente, suportam a compactação de páginas com gzip, para ser enviada a seus clientes de forma nativa, porem a maioria dos administradores não a utiliza por não saber da mesma, usando essa tecnologia um site pode ter seu tamanho reduzido a 70% quando enviado ao usuário, isso dai acaba sendo uma mão na roda em muitos casos. Porem vamos deixar de lenga lenga e vamos ao tutorial.

Apache

Para começar no Apache temos que habilitar o mod_deflate, modulo do Apache que faz todo o serviço sujo, para isso execute o comando como root:

Código: Selecionar todos

a2enmod deflate
Após habilitar o modulo você terá que ir no site que deseja habilitar o modulo gzip (pode ser feito direto no apache.conf e pega para todos os sites, porem recomendo fazer separado e adicionar apenas nos sites que você que vale a pena ativar), no meu caso vou pegar o arquivo padrão do apache no Debian/Ubuntu e adicionar as parte do <IfModule mod_deflate.c>:

nano /etc/apache2/sites-enabled/000-default.conf

Código: Selecionar todos

<VirtualHost *:80>
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # mod_deflate configuration
        <IfModule mod_deflate.c>
 
                # Restrict compression to these MIME types
                AddOutputFilterByType DEFLATE text/plain
                AddOutputFilterByType DEFLATE text/html
                AddOutputFilterByType DEFLATE application/xhtml+xml
                AddOutputFilterByType DEFLATE text/xml
                AddOutputFilterByType DEFLATE application/xml
                AddOutputFilterByType DEFLATE application/x-javascript
                AddOutputFilterByType DEFLATE text/javascript
                AddOutputFilterByType DEFLATE text/css
 
                # Level of compression (Highest 9 - Lowest 1)
                DeflateCompressionLevel 9
 
                # Netscape 4.x has some problems.
                BrowserMatch ^Mozilla/4 gzip-only-text/html
                 # Netscape 4.06-4.08 have some more problems
                BrowserMatch ^Mozilla/4\.0[678] no-gzip
                 # MSIE masquerades as Netscape, but it is fine
                BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
 
        </IfModule>

</VirtualHost>
Após isso reinicie o Apache e pronto:

Código: Selecionar todos

service apache2 restart
Nginx

Abra o arquivo /etc/nginx/nginx.conf e adicione as seguintes linhas:

Código: Selecionar todos

gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_proxied any;
gzip_min_length  1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_disable "MSIE [1-6].(?!.*SV1)";
gzip_vary on;
Após isso restart o nginx:

Código: Selecionar todos

service nginx restart
Teste

Para testar o nível de compressão do seu site, utilize esse serviço daqui, ele da o tamanho da página real, o comprimido e a porcentagem de compressão.

http://www.whatsmyip.org/http-compression-test/


Boa sorte a todos e até o próximo tutorial.



Voltar para “Servidores”