Utilizo nginx como servidor frontal, modifiqué los archivos CSS, pero nginx sigue sirviendo a los antiguos.
Traté de reiniciar nginx, sin éxito y busqué en Google, pero no encontré una forma válida de borrarlo.
Algunos artículos dicen que simplemente podemos eliminar el directorio de caché: var/cache/nginx
pero no existe tal directorio en mi servidor.
¿Qué debería hacer ahora?
proxy_cache
?cache
, no la encontré en los archivos de configuraciónRespuestas:
Tuve exactamente el mismo problema: estaba ejecutando mi nginx en Virtualbox. No tenía el almacenamiento en caché activado. Pero parece que
sendfile
se establece enon
ennginx.conf
y que estaba causando el problema. @kolbyjack lo mencionó anteriormente en los comentarios.Cuando apagué
sendfile
, funcionó bien.Esto es porque:
Está relacionado con este error: https://www.virtualbox.org/ticket/12597
fuente
También puede omitir / volver a almacenar en caché archivo por archivo utilizando
y como bonificación, puede devolver este encabezado para ver si lo obtuvo del caché (devolverá 'HIT') o del servidor de contenido (devolverá 'BYPASS').
para caducar / actualizar el archivo en caché, use curl o cualquier otro cliente de descanso para realizar una solicitud a la página en caché.
Esto devolverá una copia nueva del elemento y también reemplazará lo que está en caché.
fuente
A menos que haya configurado una zona de caché a través de proxy_cache_path y luego la haya usado (por ejemplo, en un bloque de ubicación), a través de: proxy_cache, nada se almacenará en caché.
Sin embargo, si lo hizo, según el autor de nginx , basta con eliminar todos los archivos del directorio de caché.
La forma más simple:
find /path/to/your/cache -type f -delete
fuente
[crit] 1640#0: unlink() "/path/to/cache/85/1cc5328db278b328f2c200c65179ad85" failed (2: No such file or directory)
Puede eliminar el directorio de caché de nginx o puede buscar un archivo específico:
Y elimine solo un archivo para nginx actualizarlos.
fuente
grep -lr 'http://mydomain.pl/css/myedited.css$' /var/nginx/cache/*
grep: /var/nginx/cache/*: No such file or directory
: estoy usando Ubuntu 14.04.3 LTS y nginx / 1.8.1. ¿Alguna idea?sudo find /var/nginx/cache -type f -exec grep -l '/css/myedited.css' {} \;
Hay dos respuestas en esta pregunta.
Utilizar:
P.EJ:
fuente
Esto me pareció útil
Buscar y, si se encuentra, eliminar.
fuente
En mi instalación de nginx descubrí que tenía que ir a:
y
en ese directorio Si conoce la ruta a su instalación de nginx y puede encontrar el directorio de caché, el mismo puede funcionar para usted. Tenga mucho cuidado con el
rm -rf
comando, si está en el directorio incorrecto, podría eliminar todo el disco duro.fuente
Ejecuto un script bash muy simple que toma 10 segundos para hacer el trabajo y me envía un correo cuando termine.
fuente
Tuve este problema también.
Mi dominio usa cloudflare.com para DNS (¡gran servicio!). ¡Ajá! Allí estaba:
cloudflare.com -> almacenamiento en caché -> Purgar caché (purgué todo) ¡Eso resolvió mi problema!
fuente
Tenemos un caché nginx muy grande (gigabytes) que ocasionalmente necesitamos borrar. He elaborado un script que borra instantáneamente el caché (en lo que respecta a Nginx) y luego elimina el directorio de caché sin privar a la aplicación principal de E / S de disco.
En resumen:
Aquí está el script, adaptado a Ubuntu 16.04 LTS, con el caché ubicado en
/mnt/nginx-cache
:Y en caso de que sea útil, aquí está la configuración de Nginx que usamos:
fuente
Para aquellos que otras soluciones no funcionan, verifique si está utilizando un servicio DNS como CloudFlare . En ese caso, active el "Modo de desarrollo" o use la herramienta "Purgar caché".
fuente
Tenga en cuenta que proxy_cache_bypass puede causarle mucho daño si su aplicación no devuelve una respuesta almacenable en caché para esa solicitud específica donde la activa.
Si, por ejemplo, su aplicación envía una cookie con cada primera solicitud, entonces un script que activa proxy_pass_bypass a través de curl probablemente obtendrá esa cookie en la respuesta, y nginx no usará esa respuesta para actualizar el elemento almacenado en caché.
fuente
Tenga cuidado de especificar correctamente la ruta correcta.
fuente
Para aquellos que han intentado eliminar los archivos de caché nginx, y que no ha funcionado o ha funcionado de forma intermitente, eche un vistazo a su configuración para open_file_cache. Si esto está habilitado y configurado para almacenar en caché un descriptor de archivo durante mucho tiempo, entonces Nginx aún puede ver una versión del archivo en caché, incluso después de haberlo eliminado del disco. Tuve que reducir open_file_cache_valid a 1s (no estoy seguro de si esto es esencialmente lo mismo que deshabilitar la caché del archivo por completo).
fuente
En mi servidor, la carpeta de caché nginx está en
/data/nginx/cache/
Entonces lo eliminé solo:
sudo rm -rf /data/nginx/cache/
Espero que esto ayude a cualquiera.
fuente
Si desea borrar el caché de archivos específicos, puede usar la
proxy_cache_bypass
directiva. Así es como lo hacesAhora, si desea omitir el caché, acceda al archivo pasando el parámetro nocache
http://www.example.com/app.css?nocache=true
fuente
app.css?nocache=true
) mientras el archivo original (sin consulta) permanece en el caché (app.css
)?Puede agregar configuración en nginx.conf de la siguiente manera.
Desde arriba, una carpeta llamada "nginx_cache" se crea dinámicamente en / tmp / para almacenar contenido en caché.
fuente
Hay un método correcto para eliminar solo los archivos de caché, que coincide con cualquier CLAVE. Por ejemplo:
Esto elimina todos los archivos de caché, que coinciden con la CLAVE "yahoo / *", si en nginx.conf se configuró:
fuente
Usamos nginx para almacenar en caché muchas cosas. Hay decenas de miles de elementos en el directorio de caché. Para encontrar elementos y eliminarlos, hemos desarrollado algunos scripts para simplificar este proceso. Puede encontrar el repositorio de estos scripts a continuación:
https://github.com/zafergurel/nginx-cache-cleaner
La idea es simple. Para crear un índice de la caché (con claves de caché y los archivos de caché correspondientes) y buscar dentro de este archivo de índice. Realmente nos ayudó a acelerar la búsqueda de elementos (de minutos a segundos) y eliminarlos en consecuencia.
fuente
En mi caso,
touch
ese archivo Css hace que parezca que los recursos han cambiado (en realidadtouch
no hace nada al archivo, excepto cambiar el tiempo de última modificación), por lo que el navegador y nginx aplicarán los últimos recursosfuente
Estaba experimentando un tipo de problema similar:
Configuración del sistema y problema: (en una caja virtual estoy alojando web usando ubuntu y nginx - las actualizaciones de la página web PHP no reflejaron cambios en el archivo css externo) Estoy desarrollando un sitio web en una máquina con Windows y transfiriendo archivos a nginx a través de una carpeta compartida. Parece que nginx no recoge los cambios en el archivo css (actualizar de cualquier manera no ayuda. Cambiar el nombre del archivo css es lo único que funcionó)
Solución: en VM encuentre el archivo compartido (archivo css en mi caso). Abra con nano y compare con el archivo en Windows Share (parecen idénticos). En VM guardar archivo compartido con nano. Todos los cambios ahora se reflejan en el navegador. No estoy seguro de por qué esto funciona, pero lo hizo en mi caso.
ACTUALIZACIÓN: Después de reiniciar el servidor VM, el problema volvió. Seguir las instrucciones de la Solución hizo que el CSS respondiera a las actualizaciones nuevamente
fuente
En mi caso, fue el opcache habilitado en /etc/php/7.2/fpm/php.ini (Ubuntu):
Establecerlo en 0 hizo que el servidor cargara la última versión de los archivos (php).
fuente