2011-10-10 24 views
5

Estoy probando nginx como un caché proxy inverso con recursos REST (Spring MVC + ETag). Cada GET está en la memoria caché.nginx - borrar caché en http PUT o POST

¿Es posible borrar la caché de nginx para un recurso específico cada vez que se actualiza a través de HTTP PUT o HTTP POST?

ps: También estoy probando el caché de barniz, pero tengo la misma duda.

Gracias!

Respuesta

0

No ha especificado qué tipo de almacenamiento en caché está implementando ya que hay varias opciones dentro de Nginx.

De su consulta, supongo que se refiere a archivos estáticos como imágenes que se cargan en su sitio.

  1. Caching Proxy Aquí es donde Nginx almacena en caché la respuesta de un servidor back-end. No tiene sentido activar esto para archivos estáticos en primer lugar. El caché de proxy es simplemente una tienda en su disco duro y el costo de recuperar dichos archivos es el mismo que si solo le permitiera a Nginx servirlos desde allí las ubicaciones reales en el sistema de archivos.

  2. FastCGI Caching Igual que Proxy Caching. No tiene sentido el tipo de archivos que pueden cargarse con POST o PUT.

  3. Memcache Aquí, los elementos se almacenan en la memoria RAM y esto tiene un beneficio. Existen los Memcache básicos y los Módulos Memc extendidos, ambos con procedimientos para agregar y eliminar desde el caché.

Su consulta sin embargo, sugiere que está utilizando uno de los dos anteriores y como se ha dicho, no hay absolutamente ningún beneficio en hacer esto para el tipo de archivos que se pueden cargar utilizando POST o PUT. Cuando se guardan en caché en Nginx, se leerán desde una ubicación de disco para que se mantengan tal como se haría si se hace referencia a ellos desde la ubicación original del disco. También existe la sobrecarga de copiarlos desde la ubicación original del disco a otra ubicación del disco.

Excepto por supuesto si me falta algo.