Welcome! Log In Create A New Profile

Advanced

Cache Revalidate

November 26, 2013 09:07PM
Есть досадные мелочи, которые хотелось бы исправить, при включении fastcgi_cache_revalidate on, параметр HTTP_IF_MODIFIED_SINCE, всегда отправляется на сервер, даже если кеша нет, бекенду будет отправлен параметр с пустым значением.

По стандартам HTTP при отсутствии кеша, клиент не должен отправлять заголовок If-Modified-Since.
Более правильно если Nginx так же как и браузеры, при отсутствии кеша не будет передавать в бекенд пустой хедер If-Modified-Since, т.е нет кеша нет хедера, сейчас приходится в конфиге писать
fastcgi_param HTTP_IF_MODIFIED_SINCE $upstream_cache_last_modified if_not_empty;
чтобы пустой хедер не приходил, как этого требует стандарт.

Настроить subsecond ревалидацию в Nginx по стандартам HTTP тоже невозможно.
Если бекенд отдает заголовок
Cache-Control: max-age=0 и/или Expires: -1
Nginx воспринимает их как указания не кешировать ответ, но по стандартам эти заголовки не запрещают кешировать они указывают клиенту что ответ сервера можно кешировать, но он сразу же устаревает и следущий запрос должен пройти ревалидацию, т.е клиент должен каждый запрос отправлять с хедерем If-Modified-Since.
Мы нашли способ, как заставить Nginx кешировать такие ответы, отправить ему хедер
X-Accel-Expires: @$time-1
Тогда Nginx ведет себя правильно, т.е. так же как браузеры, которым достаточно отправить Cache-Control: max-age=0
Если, есть более красивое решения вместо X-Accel-Expires: @$time-1, хотелось бы его узнать.

Во всем остальном ревалидация работает отлично, ждем с нетерпением реализацию If-None-Match :)
С наличием ETag, будет все очень классно и правильно!
Subject Author Posted

Cache Revalidate

S.A.N November 26, 2013 09:07PM

Re: Cache Revalidate

Maxim Dounin November 27, 2013 09:14AM

Re: Cache Revalidate

denis November 27, 2013 09:48AM

Re: Cache Revalidate

S.A.N November 27, 2013 01:22PM

Re: Cache Revalidate

Maxim Dounin November 27, 2013 01:42PM

Re: Cache Revalidate

S.A.N November 27, 2013 02:30PM

Re: Cache Revalidate

Maxim Dounin November 27, 2013 03:24PM

Re: Cache Revalidate

S.A.N November 27, 2013 04:21PM

Re: Cache Revalidate

S.A.N November 27, 2013 04:47PM

Re: Cache Revalidate

Alexander Moskalenko November 27, 2013 04:50PM

Re: Cache Revalidate

S.A.N November 27, 2013 05:02PM

Re: Cache Revalidate

Maxim Dounin November 28, 2013 04:20AM

Re: Cache Revalidate

S.A.N November 28, 2013 04:56AM

Re: Cache Revalidate

Роман Москвитин November 28, 2013 05:06AM

Re: Cache Revalidate

S.A.N November 28, 2013 05:15AM

Re: Cache Revalidate

Роман Москвитин November 28, 2013 05:34AM

Re: Cache Revalidate

S.A.N November 28, 2013 05:51AM

Re: Cache Revalidate

Роман Москвитин November 28, 2013 05:54AM

Re: Cache Revalidate

grygory.mos December 06, 2013 01:56AM

Re: Cache Revalidate

Maxim Dounin December 06, 2013 08:18AM

Re: Cache Revalidate

grygory.mos December 06, 2013 02:38PM

Re: Cache Revalidate

S.A.N December 06, 2013 05:52PM

Re: Cache Revalidate

grygory.mos December 22, 2013 06:48PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 279
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