Squid
¿Y si tenemos una red? ¿Tenemos que ir instalando las aplicaciones anteriores puesto por puesto? ¿Y si no utilizamos Windows?
Una solución a todo esto es
meter por medio nuestro propio proxy. ¿Para qué? Él será el que se encargue de forzar el refresco. Este sistema para una red es muy interesante, pues sólo hay que configurar el servidor y los navegadores (incluso ni eso, si hacemos que el proxy sea transparente también).
Además, podemos meter reglas de filtrado en el proxy para evitar los sitios de publicidad.
Una guía más exhaustiva sobre
Squid la podéis encontrar
.
La parte de la instalación me la salto, en el
sitio oficial tenéis toda la
. Aquí vamos a ir al grano.
Antes de nada, tengo que decir que no soy ningún experto en Squid, y todo esto ha sido sacado a base de pruebas. Si hay algún error, os pido que me corrijais ;)
Para forzar el refresco, lo
único que tenemos que hacer es decirle que no queremos que coja nada de nuestra caché, con ello conseguimos que los datos sean siempre "frescos". Nos vamos al /etc/squid.conf (o donde tengas el archivo de configuración) y modificamos las directivas no_cache y refresh_pattern de la siguiente manera (dejad lo originales con comentarios, y el resto del archivo sin tocar):
acl QUERY urlpath_regex cgi-bin \? .
no_cache deny QUERY
refresh_pattern . 0 0% 0
Digamos que aquí estamos usando un pequeño truco (chapuza lo llaman a veces).
Con las 2 primeras líneas hacemos que no se cachee ninguna dirección que contenga los caracteres "cgi-bin" o "?" o "." (*). Buscadme una sola dirección que no tenga un punto :) ¿La encontrásteis?
Realmente se podría dejar solo el punto, pero por vaguería no lo he probado.
Con el refresh_pattern le estamos diciendo que la edad máxima de un elemento en la caché es 0.
Esta configuración podemos irla afinando. ¿Qué os parece si cacheamos las imágenes mientras no sean nuevas? Pues a modificar la acl:
acl IMAGENES urlpath_regex jpg gif png swf JPG GIF PNG SWF
acl QUERY urlpath_regex cgi-bin cgi \? php asp html htm xml pl
no_cache allow IMAGENES
no_cache deny QUERY
refresh_pattern . 0 0% 0
Creo que os podéis imaginar como funciona. Desconozco si Squid es
case sensitive (me imagino que sí), por eso están repetidas las extensiones de las imágenes.
No quería pararme mucho más en la configuración de Squid, si queréis algo más
técnico se puede estudiar el realizar otro documento.
Comprobaremos si la configuración es correcta mediante el
test de Lagado.
* * *
Parches para Mozilla
Hace tiempo alguien envió a
Barrapunto.com instrucciones para aplicar un parche aplicable en el proceso de compilación de
Mozilla, para que éste obligase al proxy en cada solicitud a entregar contenidos actualizados:
barrapunto.com/article.pl?sid=03/02/05/2241234
El parche se puede bajar de aquí; la segunda dirección la utilizamos por si el archivo desaparece del server original, que es el de la primera URL:
213.96.133.176/nocache/patch-no-cache-mozilla-1.2.1.tgzpiezas.bandaancha.st/box/patch-no-cache-mozilla-1.2.1.tgz
Se debe aplicar al directorio
netwerk/protocol/http/src, al fichero
nsHttpChannel.cpp del código fuente de
Mozilla (1.2.1) así:
cd netwerk/protocol/http/src
tar xvzf patch-no-cache-mozilla-1.2.1.tgz
patch nsHttpChacnnel.cpp patch-no-cache-mozilla-1.2.1.diff
Y a continuación se compila.
Una vez más, podremos comprobar si la configuración es correcta mediante el
test de Lagado.