Re: Bug – 304 status - Cache-Control
Gena Makhomed
gmm at csdoc.com
Mon Jan 6 10:04:08 UTC 2014
On 06.01.2014 10:35, S.A.N wrote:
> Есть uri
> /user/bar
> Отдает контент с заголовками
> Cache-Control: private, max-age=0
> Это клиенское кеширования, с постояной ревалидацией на бекенде.
> Даные заголовки запрещают Nginx кешировать страницу, никаких файл кеша в
> Nginx не создаётся её кеширует только браузер, нам это и нужно на данном
> uri.
> По этому в нашем конфиге прописана передача от клиента к бекенду заголовков
> кеширования, чтобы бекенд мог ревалидировать кеш клиента.
> Вот эти строки
> fastcgi_param HTTP_IF_NONE_MATCH $http_if_none_match if_not_empty;
> fastcgi_param HTTP_IF_MODIFIED_SINCE $http_if_modified_since if_not_empty;
> Это работает отлично, но дело в том что эти строчки конфига ломают Nginx
> кеширования, из-за них появляется баг с кешированием 304 статуса.
>
> Отключить Nginx кеширования тоже не можем потому что на других uri мы
> используем Nginx кеширования, например uri
> /news/list
> Отдает контент с заголовками
> Cache-Control: public, max-age=1
> Эта страница должна попадать в кеш Nginx.
там где нужен кеш - его можно включить.
там где кеш не нужен - его можно выключить.
в том числе и в контексте отдельных location`ов.
http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache
syntax: fastcgi_cache zone | off;
default: fastcgi_cache off;
context: http, server, location
Defines a shared memory zone used for caching. The same zone can be used
in several places. The off parameter disables caching inherited from the
previous configuration level.
> Нам надо что бы клиент и Nginx кеширования и клиент работали в рамках одного
> server{}, это возможно сделать?
да.
передавать на backend заголовки If-Modified-Since и If-None-Match
или нет - это тоже можно настроить по разному для разных location`ов.
--
Best regards,
Gena
Подробная информация о списке рассылки nginx-ru