Re: Управление кешом - фичареквест

Gelun, Artem a at gelun.ru
Fri Aug 23 18:45:43 UTC 2013


Тема, конечно, старая, и уже "завяла", но:

а как Вы собираетесь инвалидировать кэш если у вас, к примеру, стоит 2
frontend'а и каждый из них кэширует независимо?
Вот пришёл, к примеру, один юзер на FE1,  страница закэшировалась. Второй -
на FE02, страница закэшировалась ещё раз. Потом прошёл какой-то запрос, в
ответе на который была инвалидация по заданному ключу. И этот запрос
проксируется ведь только одиним FE (например, первым). В итоге, второй FE
будет отдавать старые данные и схема будет неработоспособной (если,
конечно, не допускать, что при обновлении страницы пользователь может
получать разные данные).



26 июля 2013 г., 21:01 пользователь Dmitry E. Oboukhov <unera at uvw.ru>написал:

> >> нет это совсем не то что в фичареквесте.
> >>
> > ...
> >>
> >> я хочу получить механизм внутри обработчика сбросить кеш на другом
> >> роуте.
> >> как вариант - выдать хидер с урлом кеш на котором надо сбросить.
> >>
> >> а директивы в конфиге = это не программа это набор условий :)
> >>
> > я раньше решал похожую проблему с помощью модуля ngx_cache_purge (
> > http://wiki.nginx.org/CachePurgeChs ). создавал в nginx специальный
> > локейшн (/purge/), при обращении к которому удалялся из кеша указанный
> > элемент. Т.е. после изменения в базе, запрос по этому локейшну делает
> > само приложение (для wordpress есть специальный плагин). Подробнее (с
> > конфигами) можно почитать тут:
>
> > http://mailman.nginx.org/pipermail/nginx-ru/2013-February/050061.html
> > http://mailman.nginx.org/pipermail/nginx-ru/2012-December/049347.html
>
> > но теперь, я бы попытался реализовать соответствующий функционал без
> > стороннего модуля, а только директивой proxy_cache_bypass.
>
> proxy_cache_bypass ведь не дает того функционала о котором я говорю:
> когда один роут сбрасывает кеш на другом роуте.
>
> > Таким образом, применяя предложенную мной схему, вместо того чтобы
> > просто отдать nginx страницу с заголовком X-Cache-Invalid:
> > "/users/top/123?all=yes", вам придётся сначала сделать запрос из
> > приложения по адресу /purge/users/top/123?all=yes и элемент кеша
> > обновится.
>
> я посмотрю внутрь модуля. сложно его доработать до того функционала
> что я говорю?
>
> --
>
> . ''`.                               Dmitry E. Oboukhov
> : :'  :   email: unera at debian.org jabber://UNera@uvw.ru
> `. `~'              GPGKey: 1024D / F8E26537 2006-11-21
>   `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iEYEAREDAAYFAlHyq1wACgkQq4wAz/jiZTe0JwCePKuBoExhqU/EEzIzqC8xFBpm
> MhQAoNBbH8GwYwoba7m0bAd9mZhX41yl
> =ArMD
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130823/73335047/attachment.html>


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