Hello! On Fri, Jul 26, 2013 at 11:53:33AM +0400, Dmitry E. Oboukhov wrote:
> поигрался немного с кешами. > > интересно, включаем кеш для 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 по факту выдачи такого ответа сбросил кеши, > связанные с данными урлами? Помнится мне, когда-то давно Игорь писал в рассылку, что планирует нечто подобное сделать. А сейчас даже есть draft RFC на аналогичную тему, тут: http://tools.ietf.org/html/draft-nottingham-linked-cache-inv-04 Я, правда, сомневаюсь, что draft взлетит, но вообще функциональность, как мне кажется, интересная. С точки зрения реализации в nginx'е есть, правда, один нюанс: ключ кеширования может задаваться произвольно, и не так просто вычислить, что именно нужно убрать из кеша. -- Maxim Dounin http://nginx.org/en/donation.html _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
