Cache Revalidate

Maxim Dounin mdounin at mdounin.ru
Fri Dec 6 13:16:42 UTC 2013


Hello!

On Fri, Dec 06, 2013 at 01:56:13AM -0500, grygory.mos wrote:

> > Вот и я о том же - если страница генерится 0.8 секунд, то как 
> > может быть недопустимым кешировать её на 1 секунду?  Откуда 
> > взялось требование о недопустимости?
> > 
> 
> В моем случаи такое требования появилось, когда нужно было проверять права
> доступа юзера на каждом запросе, но для этого нужны куки юзера, Nginx их не
> передаст при ревалидации кеша, так что мы тоже все это делаем только в кеше
> браузера.

Just a side note: при ревалидации передаются все заголовки запроса 
пользователя, в том числе куки.  Вы куда-то не туда посмотрели.

> Но эти задачи можно было бы решать на кешировании реверс-прокси (Nginx)
> 
> Вот как это делается на других прокси
> http://www.mnot.net/blog/2005/11/26/caching
> 
> Так что я поддерживаю развития этой темы )

Всмысле - хочется по-abuse'ить ревалидацию для контроля доступа 
отдельных пользователей к элементам общего кеша, я правильно понял?

Подход интересный, хотя и следует понимать, что он полагается на 
то, что, если ревалидация не проходит - элемент кеша не будет 
удалён/заменён, а будет продолжать использоваться для других 
пользователей.

Вообще в nginx'е для подобных задач удалённого контроля доступа 
есть аж два механизма - X-Accel-Redirect и auth_request, гораздо 
более приспособленных именно для контроля доступа, и не завязанных 
на наюнсы поведения кеширования.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



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