¿Cómo borrar el caché de nginx?

Resuelto Freewind asked hace 13 años • 26 respuestas

Utilizo nginx como servidor frontal, he modificado los archivos CSS, pero nginx todavía sirve los antiguos.

Intenté reiniciar nginx, sin éxito y busqué en Google, pero no encontré una forma válida de borrarlo.

Algunos artículos dicen que podemos simplemente eliminar el directorio de caché:, var/cache/nginxpero no existe dicho directorio en mi servidor.

¿Qué debería hacer ahora?

Freewind avatar Jun 04 '11 17:06 Freewind
Aceptado

Tuve exactamente el mismo problema: estaba ejecutando mi nginx en Virtualbox. No tenía activado el almacenamiento en caché. Pero parece que estaba sendfileactivado y eso estaba causando el problema. @kolbyjack lo mencionó arriba en los comentarios.onnginx.conf

Cuando lo apagué sendfile, funcionó bien.

Esto es porque:

Sendfile se utiliza para 'copiar datos entre un descriptor de archivo y otro' y aparentemente tiene algunos problemas reales cuando se ejecuta en un entorno de máquina virtual, o al menos cuando se ejecuta a través de Virtualbox. Desactivar esta configuración en nginx hace que el archivo estático se entregue mediante un método diferente y sus cambios se reflejarán de inmediato y sin lugar a dudas.

Está relacionado con este error: https://www.virtualbox.org/ticket/12597

Deepan Chakravarthy avatar Oct 29 '2012 06:10 Deepan Chakravarthy

También puede omitir/volver a almacenar en caché archivo por archivo usando

proxy_cache_bypass $http_secret_header;

y como beneficio adicional, puede devolver este encabezado para ver si lo obtuvo del caché (devolverá 'HIT') o del servidor de contenido (devolverá 'BYPASS').

add_header X-Cache-Status $upstream_cache_status;

para caducar/actualizar el archivo en caché, use curl o cualquier cliente de descanso para realizar una solicitud a la página en caché.

curl http://abcdomain.com/mypage.html -s -I -H "secret-header:true"

esto devolverá una copia nueva del elemento y también reemplazará lo que está en caché.

Jason Wiener avatar May 21 '2014 04:05 Jason Wiener