Introducción
En este artículo os voy a explicar como servir comprimido el contenido a través del servidor de aplicaciones httpd de Apache. La gente no suele tener esto en cuenta y la verdad es que haciendo esto podemos hacer que nuestras páginas web carguen mucho más rápido ya que el tamaño que se va a tener que descargar el navegador será mucho menor.
Configuración
Lo primero que tendremos que hacer es elegir que tipo de contenido queremos servir comprimido (normalmente es todo el que sea texto). Una lista de los tipos de contenido que se suele comprimir es el siguiente:
- text/plain
- text/html
- text/xml
- text/gml
- text/css
- application/json
- application/xml
- application/xhtml+xml
- application/rss+xml
- application/javascript
- application/x-javascript
Como no siempre apache sabe el tipo de contenido que tiene un fichero, también podremos indicarle que ficheros servir comprimidos a través de sus extensiones. Estas suelen ser: html, xml, gml, js, css.
Para servir comprimido estos tipos de contenido, lo que tendremos que hacer es cargar el módulo deflate y activarlo. Luego tendremos que indicar que tipo de contenido y que archivos (a través de su extensión) queremos comprimir. Para ello tendremos que añadir las siguientes líneas a nuestro fichero de configuración de Apache httpd.conf:
LoadModule deflate_module modules/mod_deflate.so <IfModule mod_deflate.c> # Activamos la compresión SetOutputFilter DEFLATE # Indicamos los tipos de contenido a comprimir AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/gml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/json AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript # Indicamos las extensiones de los ficheros a comprimir <files *.html> SetOutputFilter DEFLATE </files> <files *.xml> SetOutputFilter DEFLATE </files> <files *.gml> SetOutputFilter DEFLATE </files> <files *.json> SetOutputFilter DEFLATE </files> <files *.js> SetOutputFilter DEFLATE </files> <files *.css> SetOutputFilter DEFLATE </files> </IfModule>
Además tendremos que tener en cuenta, que si estamos usando la versión 2.4 del servidor de Apache httpd, tenemos que cargar también el módulo filter con la siguiente línea:
LoadModule filter_module modules/mod_filter.so
Por último tendremos que reiniciar el servicio para que cargue la nueva configuración. Si estamos en Windows desde el panel de control de los servicios o si estamos en Linux con el siguiente comando:
>> sudo service apache2 restart
Si estáis en linux y queréis comprobar si una url se esta sirviendo comprimida, podéis hacerlo ejecutando el siguiente comando (acordaros de sustituir la url).
>> wget --no-cache --header="accept-encoding: gzip" -S TU_URL 2>&1 | grep "Content-Encoding"
Si se ha devuelto comprimida, al ejecutar el comando os indicará: "Content-Encoding: gzip"
Comentarios
Tengo la duda: ¿existe alguna
Tengo la duda: ¿existe alguna manera de saber si el servidor está implementando los métodos de compresión?
Tengo configurado mi .htaccess para comprimir todo, pero el PageSpeed me sigue diciendo que no tengo nada comprimido; y no tengo ningún error, pues me he bajado la versión de .htaccess de BoilerPlate; y, según entiendo, no contiene ningún error. ¿Puede ser un error del PageSpeed (sería el colmo)?
Buenas tardes, amigo me
Buenas tardes, amigo me gustaría saber si eso se incluye en el archivo .htaccess
No, hay que ponerlo en el
No, hay que ponerlo en el fichero httpd.conf o dependiendo de la estructura de los ficheros de configuración de tu Apache en alguno otro.
Añadir nuevo comentario