ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Cache Revalidate


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Cache Revalidate
  • From: "grygory.mos" <nginx-forum@xxxxxxxx>
  • Date: Fri, 06 Dec 2013 17:04:32 -0500
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=helium.jlkhosting.com; s=x; h=Date:Sender:From:References:In-Reply-To:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=PoS4neBLyRvVnWl6BZEDnTjkYJDo5QcV94h2iBttJrs=; b=VddwN9zcWjXPV03H2zPJMLbb/l/pISmPTlzWw0Y0+CnNJu/VgRmMKq47DFRIGPasJw/boIwrEHGZDCFBvRK7P2izj1JY4jGkB/oXYO1AEPXdow+ZSh18NI1MFFQDiibi0Im11kwGgiM0Rre6AOqo6yq21NUctGY2VNGrO8nK3y0=;
  • In-reply-to: <20131206131642.GN95113@mdounin.ru>
  • References: <20131206131642.GN95113@mdounin.ru>

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

Да вы правы, куки передаются, это ЕТаг не передается, но в кеше Nginx он
есть.
ЕТаг нужен нам для быстрой проверки прав доступа и версии кеша. Без него на
ранней стадии работы скрипта невозможно быстро проверить все права доступа и
определить изменилась версия страницы или нет, чтобы отдать 304 если
страница не изменилась.


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

Если у клиента нет прав доступа, он получает статус 403, если есть права
получает ? 200 или 304.
Если бекенд не отвечает, Nginx отдает 504, никаких cache_use_stale в этом
случаи быть не должно.

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

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,244991,245296#msg-245296

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.