Vamos a explicar cómo configurar los servidores para enviar cabeceras de caché en Apache y Nginx.
Para configurar cabeceras de caché con Apache podemos utilizar dos módulos: mod_expires y mod_header
Nos permite manipular la cabecera HTTP Expires y la directiva max-age del servidor. Con ello podemos configurar en cuanto tiempo expiran los recursos almacenados en caché. Este módulo se puede aplicar en los contextos de: server config, virtual host, directory y .htaccess.
Ejemplo de configuración
<ifModule mod_expires.c>ExpiresActive OnExpiresDefault "access plus 5 seconds"ExpiresByType image/x-icon "access plus 2592000 seconds"ExpiresByType image/jpeg "access plus 2592000 seconds"ExpiresByType image/png "access plus 2592000 seconds"ExpiresByType image/gif "access plus 2592000 seconds"ExpiresByType text/javascript "access plus 216000 seconds"ExpiresByType application/javascript "access plus 216000 seconds"ExpiresByType text/html "access plus 600 seconds"ExpiresByType application/xhtml+xml "access plus 600 seconds"</ifModule>
Para más información sobre mod_expires pulsa aquí.
Nos proporciona directivas con las que podremos tener control sobre las respuestas de los encabezados. Podremos reemplazar, fusionar o eliminar las cabeceras de nuestra web. Este módulo podremos aplicarlo en los contextos: server config, virtual host, directory, .htaccess
Ejemplo de configuración
# BEGIN Cache-Control Headers<ifModule mod_headers.c><filesMatch "\.(ico|jpe?g|png|gif|swf)$">Header set Cache-Control "public"</filesMatch><filesMatch "\.(css)$">Header set Cache-Control "public"</filesMatch><filesMatch "\.(js)$">Header set Cache-Control "private"</filesMatch></ifModule># END Cache-Control Headers
Para más información sobre mod_expires pulsa aquí.
Para configurar cabeceras de caché en Nginx utilizaremos: ngx_http_headers_module
Este módulo nos permite añadir directivas "Expires" y “Cache-Control” en una cabecera de respuesta. Podemos aplicarlo en los contextos: http, server, location y if in location
Ejemplo de configuración
expires 24h;expires modified +24h;expires @24h;expires 0;expires -1;expires epoch;expires $expires;add_header Cache-Control private;
Más información en http://nginx.org/en/docs/http/ngx_http_headers_module.html