Pages enfant
  • nginx

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

proxy_cache_key $scheme://$host$request_uri;

Par défaut un Pour faire fonctionner le force-reload ne fonctionne pas avec nginx (?). Solution :

proxy_cache_bypass $http_pragma;


Pour forcer une mise en cache d'un contenu, il faut comprendre ce qu'effectue nginx :

  • interrogation du cache avec "proxy_cache_key", en vérifiant les contraintes sur les request headers (voir plus loin)
  • si cache trouvé et si évaluation de "proxy_no_cache" répond faux
    • utilisation du cache
  • sinon
    • requesting upstream après effectué "proxy_set_header"
    • si réponse n'a pas "Set-Cookie" ou si ignoré par "proxy_ignore_headers"
      et si réponse a X-Accel-Expires/Cache-Control/Expires et non ignoré par "proxy_ignore_headers"
      ou si "proxy_cache_valid" l'autorise
      • si response headers contient "Vary" et non ignoré par "proxy_ignore_headers"
        • si "Vary: *" ou Vary trop long (plus de 128 chars)
          • pas de mise en cache
        • sinon mise en cache avec contrainte sur les request headers listé dans "Vary"
      • sinon mise en cache sans contrainte
    • sinon pas de mise en cache
  • dans tous les cas, effectuer "proxy_hide_header" et "add_header"

PS : la durée de mise en cache est définie par X-Accel-Expires/Cache-Control/Expires/proxy_cache_valid (avec cet ordre de priorité)

Buffering

Par défaut nginx bufferise les requêtes et les réponses. Cela peut nécessiter de la place disque.

...