Re: Частичный сброс кеша / сброс кеша для отдельного server_name или location

Иван Мишин simplebox66 на gmail.com
Пн Июл 13 11:18:55 UTC 2015


Подниму свой вопрос: Как чистить кеш для отдельных вирт. хостов(т.е.
чистить кеш по отдельным ключам)?
Имею достаточно большое кол-во вирт хостов, и когда требуется сбросить кеш
для одного хоста, то приходиться сбрасывать сразу для всех.

Сделайте разные кеши для разных server_name, будете очищать всю директорию.

Сейчас у меня под кеш есть каталог /tmp/ram 10гб
Куда складывается кеш от 20-ти разных вирт хостов
Получается какой-то вирт хост занимает под кеш больше места, какой-то
меньше, но если в кеш требуетсья положить очередную порцию с какого-либо
вирт хоста, а кеш уже забит, то произойдет замещение не актуального кеша на
новый.

В случае же разделения кеша по вирт хостам, /tmp/ram/host1 /tmp/ram/host2 и
т.д. то получается мне либо на каждый хост надо выделить по 500Мб, но это
не эффективно, потому что сейчас один вирт хост может требовать 100мб под
кеш а другой 700мб, а через час ситуация может поменяться уже в обратную
сторону. Второй вариант для всех  /tmp/ram/host1 /tmp/ram/host2 и т.д.
укахывать размер 10Гб, но тогда если например host1 займет все 10Гб, то
host2 уже хранить кеш будет негде, и на сколько я понимаю, удалять
неактуальный он автоматически уже не будет. так?



26 мая 2015 г., 13:37 пользователь Roman Arutyunyan <arut на nginx.com>
написал:

>
> On 26 May 2015, at 13:22, Иван Мишин <simplebox66 на gmail.com> wrote:
>
> > Может быть кто-то кроме Романа знает, что будет В случае расположения
> директивы на уровне  server, обратившись к xxx.ru используя спец
> заголовок, обновиться ли весь кеш ресурса к xxx.ru ?
>
> Не очень понятно, что вы имели в виду под "обновить весь кеш ресурса к
> xxx.ru”.
>
> Если вы располагаете proxy_cache_bypass на уровне server, то эта директива
> наследуется
> всеми локейшенами со всеми вытекающими последствиями.  Будет обновлен тот
> один элемент
> кеша, который соответствует вашему ключу.
>
> >
> > 25 мая 2015 г., 14:53 пользователь Иван Мишин <simplebox66 на gmail.com>
> написал:
> > Да, работать будет.  Если вас устраивает такой способ обновления кеша,
> то все ок.
> >
> > В случае расположения директивы на уровне  server, обратившись к xxx.ru
> используя спец заголовок, обновиться весь кеш ресурса к xxx.ru ?
> >
> > Сделайте разные кеши для разных server_name, будете очищать всю
> директорию.
> > Слишком много server_name у меня для такой схемы, можно будет легко
> запутаться при настройке кеша для того или иного ресурса.
> >
> > 25 мая 2015 г., 14:31 пользователь Roman Arutyunyan <arut на nginx.com>
> написал:
> >
> >
> > On 25 May 2015, at 13:43, Иван Мишин <simplebox66 на gmail.com> wrote:
> >
> > > proxy_cache_bypass не чистит кеш, а игнорит закешированный ответ для
> > > Ну к примеру лежит у меня в кеше  xxx.ru/page.html
> > > Если я обращусь к  xxx.ru/page.html то получу ее из кеша, а если
> обращусь к xxx.ru/page.html используя спец заголовок описанный в
> proxy_cache_bypass, то запрос пойдет на бекенд а по возвращении ляжет в кеш
> тем самым обновив старый кеш . И уже при последующем обращении к
> xxx.ru/page.html я получу в ответ уже обновленный кеш. Разве нет?
> >
> > Да, работать будет.  Если вас устраивает такой способ обновления кеша,
> то все ок.
> >
> > >
> > > > Выходит в моем случае кеш можно чистить только удалением файлов из
> каталога с кешем?
> > >
> > > В большинстве случаев это будет работать.
> > > Вариант хорош, но у меня кеш огромного размера и мне потребуется
> сбросить кеш для определенного server_name то я получу десятки тысяч
> файлов, которые не понятно каким средствами можно удалить.
> >
> > Сделайте разные кеши для разных server_name, будете очищать всю
> директорию.
> >
> > >
> > > 25 мая 2015 г., 13:27 пользователь Roman Arutyunyan <arut на nginx.com>
> написал:
> > > Добрый день,
> > >
> > > On 25 May 2015, at 13:11, Иван Мишин <simplebox66 на gmail.com> wrote:
> > >
> > > > Рассмотрел вариант с proxy_cache_bypass, но возник вопрос, а если у
> меня несколько фронтенд nginx и при вводе домена в браузере я попадаю то на
> один фронтенд nginx то на другой , а уж затем на бекенд. Получается что при
> использовании proxy_cache_bypass я почищу кеш только на одном произвольном
> фронтенд nginx, а на остальных фронтендах кеш останется старый.
> > >
> > > proxy_cache_bypass не чистит кеш, а игнорит закешированный ответ для
> > > конкретного запроса.  Для очистки кеша надо использовать директиву
> > > proxy_cache_purge, но она на данный момент доступна лишь в коммерческой
> > > версии.
> > >
> > > В любом случае изменения, конечно, будут касаться именно того nginx,
> > > на котором вы выполняете указанные действия.
> > >
> > > > Выходит в моем случае кеш можно чистить только удалением файлов из
> каталога с кешем?
> > >
> > > В большинстве случаев это будет работать.
> > >
> > > --
> > > Roman Arutyunyan
> > >
> > >
> > >
> > > _______________________________________________
> > > nginx-ru mailing list
> > > nginx-ru на nginx.org
> > > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> > >
> > > _______________________________________________
> > > nginx-ru mailing list
> > > nginx-ru на nginx.org
> > > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >
> > --
> > Roman Arutyunyan
> >
> >
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru на nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru на nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
> --
> Roman Arutyunyan
>
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20150713/14b5b16b/attachment.html>


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