English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Raisons et solutions des problèmes de cache nginx

Contenu de la partie nginx.conf :

  proxy_temp_path  /nginx/cache/temp;
  proxy_cache_path /nginx/cache/niveaux de chemin=1:2 keys_zone=cache_test:2048m inactive=7d max_size=10g;
......
 location ~ .(gif|jpg|jgep|png)$ {
    proxy_pass http://upstreams;
    proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
    proxy_cache cache_test;
    #Définir la clé de cache
    #Définir la clé de cache proxy $host$uri$is_args$args;
    #Définir le code d'état en200 et304Les réponses peuvent être mises en cache, et le temps de cache est1jour
    proxy_cache_valid 200 304 1d;
    expires 30d;
  }

Raisons pour lesquelles nginx ne met pas en cache

Par défaut, la décision de mise en cache de nginx est prise conjointement par le serveur de cache nginx et le serveur source. Le serveur de cache doit strictement suivre l'en-tête de réponse du serveur source pour décider s'il doit mettre en cache et pendant combien de temps il doit mettre en cache.

Les en-têtes principaux sont les suivants :

Cache-control : no-cache, no-store

Si ces deux valeurs apparaissent, le serveur de cache nginx ne mettra jamais en cache.

Expires :1980-01-01

Si la date est antérieure à l'heure actuelle, elle ne sera pas mise en cache non plus.

Solution pour ne pas mettre en cache

2.1 Méthode une :

Modifier l'en-tête de réponse du programme ou du serveur web source

2.2 Méthode deux :

nginx proxy directement avec la phrase suivante :

proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;

Résumé

Ceci est le contenu complet de cet article. J'espère que le contenu de cet article pourra vous aider dans vos études ou votre travail. Si vous avez des questions, vous pouvez laisser des commentaires pour échanger.

Vous pourriez aussi aimer