Cache Revalidate

S.A.N nginx-forum at nginx.us
Wed Nov 27 19:30:01 UTC 2013


> Они 
> вообще ничего не требуют кешировать.  Кеш - дело сугубо 
> добровольное.  ;)

max-age=0 не требует кешировать ответ, смысл в том что он не запрещает
кешировать ответ, в Nginx max-age=0 запрещает кеширования, в этом и есть не
соответвия Nginx с спецификацией HTTP.

В Nginx есть деректива fastcgi_cache on, и бекенд отдал хедер Cache-Control:
max-age=0, который по спецификации HTTP не запрещает кешировать ответ, в
этом случаи Nginx должен кешировать ответ бекенда, это логично и
соответствует спецификации HTTP.

Но сейчас чтобы этого добиться нужно эксплуатировать баг с X-Accel-Expires:
@$time-1.
Я понимаю что так сложилось исторически, раньше в Nginx не было ревалидации
кеша, по этому max-age=0 мог означать только запрет на кеширования, но при
наличии ревалидации, это уже не совсем правильно.
Я не настаиваю чтобы вы это меняли хотя возможно как вариант сделать чтобы
Nginx понимал хедер Cache-Control: must-revalidate, как указания кешировать
но всегда ревалидировать.

Это уже на ваше усмотрения.
Главное чтобы была возможность добиться от Nginx постоянной ревалидации.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244991,245018#msg-245018



Подробная информация о списке рассылки nginx-ru