Mod_deflate para optimizar velocidad web
mod_deflate es un módulo para Apache que permite comprimir los datos antes de enviarlos al navegador. Esto hace que la web esté mas optimizada a lo que velocidad se refiere. Yo me voy a centrar en un servidor CentOs para poner cómo habilitarlo y configurarlo, pero en debian, ubuntu server… es lo mismo.
Últimamente Google te lo exige para darle buena nota a tu web… no digo mas.
1. Fichero httpd.conf
Debemos editar el fichero httpd.conf para habilitar y configurar el módulo. Este fichero de configuración en CentOS está en:
1 | /etc/httpd/conf/httpd.conf |
2. Editarlo
Como seguramente estaremos trabajando en una conexión remota SSH, deberemos utilizar un editor como vi o nano. Personalmente me decanto por nano. Los usuarios de Ubuntu o debian también pueden utilizar ne (nice editor) que es muy bueno.
3. Habilitat el módulo
Dentro del fichero, vamos bajando hasta encontrar las órdenes que habilitan los módulos. Hay que decir que normalmente en CentOs ya viene habilitado por defecto, pero para confirmarlo, deberemos comprobar que esté la linia:
1 2 | LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so |
Repito, normalmente ya te viene activado. Comprobadlo. En el caso que no esté, añadís las línias (y a malas, igual tenéis que añadir los módulos).
4. Configurando el módulo
Ahora toca configurar el módulo. Añadimos las siguientes linias, aunque puede ser que por necesidades específicas debáis añadir de nuevas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <IfModule mod_deflate.c> # Indicamos que tipos MIME vamos a comprimir 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 # Indicamos nivel de compresión (El mas alto 9 - El mas bajo 1) DeflateCompressionLevel 9 # Netscape 4.x tiene algunos problemas BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 también tiene algunos problemillas BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE Microsoft Internet Explorer BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html <IfModule mod_headers.c> # Nos aseguramos que los proxies no entregan contenido erroneo Header append Vary User-Agent env=!dont-vary </IfModule> </IfModule> |
Pues ale, configurado.
5. Reiniciamos servidor
Vamos allá.
1 | /etc/init.d/apachectl restart |
6. Confirmamos que todo está OK
Con la herramienta WebSniffer comprobamos que en el header de vuelta contiene Content-Encoding gzip
Web sniffer – Leer header petición web
Fuente información