Nginx add_header et contrôle de cache

Lorsque vous utilisez la directive add_header dans nginx, l’en-tête est ajouté à la réponse provenant du serveur d’origine.

Supposons que le serveur d’origine renvoie le cache-control public, max-age = 60. Mais dans l’emplacement de proxy inverse nginx, vous définissez quelque chose comme:

add_header cache-control public, age max = 10

Qu’est-ce que cela fait exactement? Il y a 2 scénarios différents auxquels je peux penser:

1) Nginx respecte l’en-tête de contrôle de cache du serveur d’origine et stocke le contenu dans son cache avec une expiration de 60 secondes. Puis transmet la réponse avec un en-tête écrasé, ce qui oblige le client à stocker la ressource dans son cache avec une expiration de 10 secondes.

ou..

2) Nginx écrase les en-têtes de réponse en premier et les interprète ensuite. Il stocke la ressource avec une expiration de 10 secondes et transmet la réponse au client qui la met également en mémoire cache avec une expiration de 10 secondes.

    Nginx ajoute son en-tête juste avant le serveur d’origine, vous aurez donc:

    cache-control: public, max-age=10 cache-control: public, max-age=60 

    et l’en-tête d’origine remplacera l’en-tête nginx.

    La solution? Utilisez nginx v1.4.3 avec le module more_set_headers et more_clear_headers pour remplacer ou effacer les en-têtes d’origine.

    Vous pouvez télécharger le module à partir d’ ici .
    Voici comment télécharger nginx 1.4.3 et comment l’installer.
    Voici comment utiliser les directives.