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, locationDefines 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 mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
