J'utilise nginx aux demandes de cache à mon backend uwsgi en utilisantnginx limiter la taille totale du cache
uwsgi_cache_path /var/cache/nginx/uwsgi keys_zone=cache:15M max_size=5G;
Mon back-end est la fixation d'un très long expire en-tête (1 an +). Cependant, lorsque mon système s'exécute, je vois le cache se terminer à 15M. Il se lève à ce niveau, puis descend jusqu'à 10M.
Cela provoque beaucoup d'appels inutiles à mon back-end. Quand je change la taille de keys_zone il semble contrôler la taille du cache entier. Il semble ignorer le max_size et remplace à la place la taille keys_zone. (*)
Quelqu'un peut-il expliquer ce comportement? Y a-t-il un bug connu dans cette version? Ai-je manqué le point? Je ne veux pas affecter 5G au gestionnaire de cache ..
# nginx -V
nginx version: nginx/1.2.0
built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
TLS SNI support enabled
configure arguments: --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --user=www-data --group=www-data --with-http_ssl_module --with-http_stub_status_module
(*) Mise à jour: Je suppose que cela a été mon imagination hyperactive essayant de trouver un modèle dans le chaos.
Par défaut, votre cache inactif seront supprimées au bout de 10 min. Pourriez-vous augmenter ce nombre pour voir si cela fait une différence? http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path –
Je pense que vous l'avez! Écrivez-le comme une réponse et je l'accepterai. Les docs ne sont pas vraiment clairs - je pensais depuis que j'utilisais un en-tête expiré qui surchargerait le paramètre inactif. J'aurais dû l'essayer moi-même. – Julian
Droite. L'en-tête Expires (et d'autres en-têtes) est respecté par nginx pour déterminer si une réponse peut être mise en cache, mais elle n'est pas utilisée pour déterminer le temps de mise en cache. –