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

Dmitry E. Oboukhov unera at uvw.ru
Fri Jul 26 07:53:33 UTC 2013


поигрался немного с кешами.

интересно, включаем кеш для location'а на скажем 0-30 минут и далее
бакенд определяет что данную страницу надо закешировать на скажем 20
секунд выдавая заголовок X-Accel-Expires: 20.
это классная фича!

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

например (утопический пример) мы на сайте кешируем список
пользователей написавших больше всего сообщений (ТОП по
пользователям).
понятное дело, такой ТОП меняется редко и можно смело ему выдать
скажем 10 минут время жизни кеша и все будет хорошо.
но допустим у нас задача есть чтобы этот ТОП выводился более
качественно. становится ТОП'ом другой пользователь (входит в ТОП10) и
сразу картинка перестраивается (без лага в 0-10 минут).

для такой задачи просто определение времени жизни кеширования из
бакенда не подойдет. еще нужно иметь возможность сказать что кеш
невалиден nginx'у. 

и вот тут фичареквест добавить опцию (насколько я понимаю не должно
быть сложным):

у нас есть один хидер на управление кешом:

X-Accel-Expires: [ секунд | @секунд ]

- определяет сколько времени данная страница может находиться в кеше

а можно сюда добавить еще хидер, например:

X-Cache-Invalid: "/users/top/123?all=yes"

- определяет что с данного момента определенный набор страниц
  находящихся в кеше (набор = если несколько таких заголовков выдали)
  невалиден.

Тогда если бакенд выдал такой заголовок (или несколько таких
заголовков), чтобы nginx по факту выдачи такого ответа сбросил кеши,
связанные с данными урлами?
-- 

. ''`.                               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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130726/4aacceb6/attachment.bin>


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