> On 31 Jul 2018, at 19:35, Gena Makhomed <g...@csdoc.com> wrote: > > On 31.07.2018 17:58, Igor A. Ippolitov wrote: > >>> У бекенда нет возможности узнать, ответ бекенда по какому-то урлу >>> еще лежит в кэше или его там уже давно нет. В результате "замещение" >>> контента в кэше через proxy_cache_bypass может быть на самом деле >>> не замещением старого контента, а добавлением туда нового контента >>> и вымыванием из кэша другого контента, который реально запрашивался >>> клиентами, что ведет к уменьшению эффективности работы кэша nginx. > >> Если задаться целью избежать добавления нового контента, можно >> самостоятельно считать md5 от ключа кэша и проверять наличие этого файла. >> Подобные вычисления можно делать в njs. > > Или просто самим backend`ом вычислять md5 от ключа и удалять файл > из /var/cache/nginx/ - таким способом тоже должно все работать.
Если удалить элемент кэша вручную backend-ом, то nginx будет очень сильно негодовать в error_log, hence привет, сторонние модули. >>> и при proxy_cache_use_stale updating; эта болванка будет отдана клиенту. >>> а proxy_cache_lock действует только при заполнении нового элемента кэша. > >> В отношении proxy_cache_use_stale updating - не могу сказать ничего >> конструктивного. >> Если вас устраивает stale контент, то смысл его purge'ить? > > Насколько я понимаю, если сделать purge для какого-то элемента кэша - > то он не будет stale, а его в кэше не будет тогда вообще. Разве нет? > > stale контент будет использоваться очень непродолжительное > время, только пока обновляется этот элемент кэша с backend`а. > > Кэш в nginx мне интересен прежде всего на тех сайтах, > которые находятся / могут находиться под DDoS-атакой. > > proxy_cache_lock работает только при заполнении нового элемента кэша, > поэтому мне приходится использовать proxy_cache_use_stale updating, > иначе на backend свалится огромное количество запросов и он упадет. > > Если бы была возможность легко сделать purge для элемента кэша, > тогда можно было бы средствами nginx выствлять большее время > жизни для элементов кеша nginx и средствами backend`а их удалять > как только они потеряют свою валидность. > >> А если stale не устраивает, то зачем включать proxy_cache_use_stale updating? > > У меня есть небольшой выбор - или использовать stale контент, > или backend будет нерабочий из-за большого количества запросов. > >> С выкидыванием proxy_cache_use_stale жизнь дополнительно упрощается тем, что >> proxy_cache_lock будет работать ожидаемым образом. > > proxy_cache_lock и сейчас работает именно так, как это описано > в документации к nginx, - только для новых элементов кэша. > > Если убрать proxy_cache_use_stale updating тогда на backend будет идти > огромное количество запросов и proxy_cache_lock тут никак не поможет. > > -- > Best regards, > Gena > > _______________________________________________ > 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