J'utilise nginx comme serveur frontal, j'ai modifié les fichiers CSS, mais nginx sert toujours les anciens.
J'ai essayé de redémarrer nginx, sans succès et j'ai googlé, mais je n'ai pas trouvé de moyen valide de le supprimer.
Certains articles disent que nous pouvons simplement supprimer le répertoire de cache:, var/cache/nginx
mais il n'y a pas de tel répertoire sur mon serveur.
Qu'est-ce que je devrais faire maintenant?
proxy_cache
?cache
, je ne l'ai pas trouvée dans les fichiers de configurationRéponses:
J'ai eu exactement le même problème - j'exécutais mon nginx dans Virtualbox. Je n'ai pas activé la mise en cache. Mais ressemble
sendfile
a été mis àon
ennginx.conf
et qui a été l' origine du problème. @kolbyjack l'a mentionné ci-dessus dans les commentaires.Quand je me suis éteint
sendfile
- cela a bien fonctionné.Ceci est dû au fait:
Il est lié à ce bug: https://www.virtualbox.org/ticket/12597
la source
Vous pouvez également contourner / remettre en cache fichier par fichier en utilisant
et en bonus, vous pouvez retourner cet en-tête pour voir si vous l'avez obtenu du cache (renverra 'HIT') ou du serveur de contenu (renverra 'BYPASS').
pour expirer / actualiser le fichier mis en cache, utilisez curl ou tout autre client de repos pour faire une demande à la page mise en cache.
cela renverra une nouvelle copie de l'élément et remplacera également ce qui est dans le cache.
la source
Sauf si vous avez configuré une zone de cache via proxy_cache_path et que vous l' avez ensuite utilisée (par exemple dans un bloc d'emplacement), via: proxy_cache, rien ne sera mis en cache.
Si vous l'avez fait, cependant, selon l'auteur de nginx , il suffit de supprimer tous les fichiers du répertoire cache.
Manière la plus simple:
find /path/to/your/cache -type f -delete
la source
[crit] 1640#0: unlink() "/path/to/cache/85/1cc5328db278b328f2c200c65179ad85" failed (2: No such file or directory)
Vous pouvez supprimer le répertoire cache de nginx ou vous pouvez rechercher un fichier spécifique:
Et supprimez un seul fichier pour les actualiser nginx.
la source
grep -lr 'http://mydomain.pl/css/myedited.css$' /var/nginx/cache/*
grep: /var/nginx/cache/*: No such file or directory
j'utilise Ubuntu 14.04.3 LTS et nginx / 1.8.1. Une idée?sudo find /var/nginx/cache -type f -exec grep -l '/css/myedited.css' {} \;
Il y a deux réponses à cette question.
Utilisation:
PAR EXEMPLE:
la source
J'ai trouvé cela utile
Recherchez, et si trouvé, supprimez.
la source
Dans mon installation nginx, j'ai trouvé que je devais aller à:
et
dans ce répertoire. Si vous connaissez le chemin de votre installation de nginx et que vous pouvez trouver le répertoire de cache, le même peut fonctionner pour vous. Soyez très prudent avec la
rm -rf
commande, si vous êtes dans le mauvais répertoire, vous pouvez supprimer l'intégralité de votre disque dur.la source
J'exécute un script bash très simple qui prend toutes les 10 secondes pour faire le travail et m'envoie un courrier une fois terminé.
la source
J'ai aussi eu ce problème.
Mon domaine utilise cloudflare.com pour DNS (excellent service!). Ah! C'était là:
cloudflare.com -> mise en cache -> Purger le cache (j'ai tout purgé) Cela a résolu mon problème!
la source
Nous avons un très grand cache nginx (gigaoctets) que nous devons parfois nettoyer. J'ai élaboré un script qui efface instantanément le cache (en ce qui concerne Nginx), puis supprime le répertoire du cache sans affamer l'application principale pour les E / S disque.
En résumé:
Voici le script, adapté à Ubuntu 16.04 LTS, avec le cache situé à
/mnt/nginx-cache
:Et au cas où cela serait utile, voici la configuration Nginx que nous utilisons:
la source
Pour ceux dont les autres solutions ne fonctionnent pas, vérifiez si vous utilisez un service DNS comme CloudFlare . Dans ce cas, activez le "Mode de développement" ou utilisez l'outil "Purger le cache".
la source
Veuillez noter que proxy_cache_bypass peut vous faire mal si votre application ne renvoie pas de réponse pouvant être mise en cache pour cette demande spécifique où vous la déclenchez.
Si, par exemple, votre application envoie un cookie à chaque première demande, un script qui déclenche proxy_pass_bypass via curl obtiendra probablement ce cookie dans la réponse, et nginx n'utilisera pas cette réponse pour actualiser l'élément mis en cache.
la source
Veillez à spécifier correctement le chemin correct.
la source
Pour ceux qui ont essayé de supprimer les fichiers de cache nginx, et que cela n'a pas fonctionné ou a fonctionné par intermittence, consultez votre paramètre pour open_file_cache. Si cela est activé et configuré pour mettre en cache un descripteur de fichier pendant une longue période, Nginx peut toujours voir une version du fichier mis en cache, même après l'avoir supprimé du disque. J'ai dû réduire open_file_cache_valid à 1 s (je ne suis pas certain si cela revient essentiellement à désactiver complètement le cache de fichiers).
la source
Sur mon serveur, le dossier de cache nginx est à
/data/nginx/cache/
Je l'ai donc supprimé uniquement:
sudo rm -rf /data/nginx/cache/
J'espère que cela aidera n'importe qui.
la source
Si vous souhaitez vider le cache de fichiers spécifiques, vous pouvez utiliser la
proxy_cache_bypass
directive. Voici comment vous le faitesMaintenant, si vous voulez contourner le cache, vous accédez au fichier en passant le paramètre nocache
http://www.example.com/app.css?nocache=true
la source
app.css?nocache=true
) tandis que le fichier d'origine (sans requête) reste dans le cache (app.css
)?Vous pouvez ajouter une configuration dans nginx.conf comme suit.
D'en haut, un dossier nommé "nginx_cache" est créé dynamiquement dans / tmp / pour stocker le contenu mis en cache.
la source
Il existe une bonne méthode pour supprimer uniquement les fichiers cache, qui correspond à n'importe quelle clé. Par exemple:
Cela supprime tous les fichiers cache, ce qui correspond à KEY "yahoo / *", si dans nginx.conf a été défini:
la source
Nous utilisons nginx pour mettre en cache beaucoup de choses. Le répertoire de cache contient des dizaines de milliers d'éléments. Pour trouver des éléments et les supprimer, nous avons développé quelques scripts pour simplifier ce processus. Vous pouvez trouver le référentiel de ces scripts ci-dessous:
https://github.com/zafergurel/nginx-cache-cleaner
L'idée est simple. Pour créer un index du cache (avec les clés de cache et les fichiers de cache correspondants) et effectuer une recherche dans ce fichier d'index. Cela nous a vraiment aidés à accélérer la recherche d'éléments (de quelques minutes à une sous-seconde) et à les supprimer en conséquence.
la source
Dans mon cas,
touch
ce fichier Css, donne l'impression que les ressources ont changé (en fait,touch
ne fait rien au fichier, sauf changer la dernière heure de modification), donc le navigateur et nginx appliqueront les dernières ressourcesla source
Je rencontrais une sorte de problème similaire:
Configuration du système et problème: (Sur une boîte virtuelle, j'héberge sur le Web en utilisant ubuntu et nginx - les mises à jour de la page Web PHP ne reflétaient pas les modifications apportées au fichier CSS externe). Je développe un site Web sur une machine Windows et transfère des fichiers vers nginx via un dossier partagé. Il semble que nginx ne récupère pas les modifications apportées au fichier css (l'actualisation de toute façon n'aide pas. Changer le nom du fichier css est la seule chose qui a fonctionné)
Solution: Sur VM, trouvez un fichier partagé (fichier css dans mon cas). Ouvrez avec nano et comparez au fichier dans le partage Windows (ils semblent identiques). Sur VM, enregistrez le fichier partagé avec nano. Toutes les modifications sont désormais reflétées dans le navigateur. Je ne sais pas pourquoi cela fonctionne, mais c'est le cas dans mon cas.
MISE À JOUR: Après le redémarrage du serveur VM, le problème est revenu. En suivant les instructions sous Solution, le CSS a de nouveau répondu aux mises à jour
la source
Dans mon cas, c'était l'opcache activé dans /etc/php/7.2/fpm/php.ini (Ubuntu):
Le mettre à 0 a obligé le serveur à charger la dernière version des fichiers (php).
la source