Управление кешом - фичареквест
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