Welcome! Log In Create A New Profile

Advanced

Re: Cache revalidation using If-None-Match

Gena Makhomed
July 17, 2014 05:10AM
On 15.07.2014 6:37, S.A.N wrote:

> 1. Нельзя получить от клиента валидаторы (“If-Modified-Since” и
> “If-None-Match”) если файла кеша нет, эта ситуация возникает когда бекенд
> отдавал заголовки Cache-Control: private, для контента который должен
> кешироватся только в браузере (не публичный кеш).

Откуда nginx в момент отправки запроса на backend может знать
вернет ему backend в ответе заголовок Cache-Control: private или нет?

> Проблема решается если в конфиге прописать
> 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;
> Но тогда будет проблема с публичным кешем, потому что бекенд может получить
> валидаторы от браузера, ответить статусом 304, Cache-Control: public... и
> Nginx положит этот ответ (статусом 304 nobody) в файл своего кеша и будет
> его отдавать всем.

Вот именно поэтому nginx и убирает эти два заголовка
при отправке запроса на backend, если в location включено кеширование.

> Я уже писал, про эту проблему
> http://forum.nginx.org/read.php?21,245951,245951#msg-245951
> Хочется её как-то решить.

Есть один способ:
http://www.lexa.ru/nginx-ru/msg30320.html

И второй способ: просто не включать кеширование
на стороне nginx в тех location`ах, где оно не нужно.

> ...нет способа как динамически, сказать Nginx не использовать
> cache_use_stale для этого uri, прописать в конфиге все варианты этих uri
> сложно они динамические и не шаблонные, добавлять какой-то спец признак по
> которому можно создать общий location в принципе можно, но хочется более
> красивого и системного решения.

Более красивое и системное решение - это разнести uri с разными
настройками кеширования по разным location`ам или виртуальным
серверам в конфиге nginx.

Например, http://www.example.com/ - одна политика кеширования,
http://example.com/ - вторая, http://stat.example.com/ - третья.
Это если нельзя легко и просто разделить uri по префиксам location.

--
Best regards,
Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Cache revalidation using If-None-Match

S.A.N June 26, 2014 10:36AM

Re: Cache revalidation using If-None-Match

Anatoly Mikhailov June 26, 2014 04:28PM

Re: Cache revalidation using If-None-Match

S.A.N July 14, 2014 11:37PM

Re: Cache revalidation using If-None-Match

Maxim Dounin July 15, 2014 06:54PM

Re: Cache revalidation using If-None-Match

S.A.N July 15, 2014 08:09PM

Re: Cache revalidation using If-None-Match

S.A.N July 15, 2014 08:44PM

Re: Cache revalidation using If-None-Match

Gena Makhomed July 17, 2014 05:50AM

Re: Cache revalidation using If-None-Match

S.A.N July 17, 2014 09:46AM

Re: Cache revalidation using If-None-Match

Gena Makhomed July 17, 2014 02:46PM

Re: Cache revalidation using If-None-Match

S.A.N July 17, 2014 06:23PM

Re: Cache revalidation using If-None-Match

Gena Makhomed July 18, 2014 07:16AM

Re: Cache revalidation using If-None-Match

S.A.N July 18, 2014 01:01PM

Re: Cache revalidation using If-None-Match

Gena Makhomed July 17, 2014 07:36AM

Re: Cache revalidation using If-None-Match

S.A.N April 01, 2015 12:04PM

Re: Cache revalidation using If-None-Match

Валентин Бартенев April 02, 2015 03:14AM

Re: Cache revalidation using If-None-Match

Gena Makhomed July 17, 2014 05:10AM

Re: Cache revalidation using If-None-Match

S.A.N July 17, 2014 08:17AM

Re: Cache revalidation using If-None-Match

Gena Makhomed July 17, 2014 02:08PM

Re: Cache revalidation using If-None-Match

S.A.N July 17, 2014 04:48PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 312
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready