On 30.07.2018 19:59, Igor A. Ippolitov wrote:

Мне кажется, что proxy_cache_bypass легко позволяет замещать контент в кэше (что и делает purge, в широком смысле).

Замещать существующий контент или добавлять новый - да.
Но удалять не позволяет, в этом и состоит (небольшое) отличие.

Но ведь какой-то ответ на запрос "пурженного" контента всё равно придёт клиенту? Почему бы не закэшить сразу его.

Потому что как правило объем кэша меньше объема сайта и поэтому имеет
смысл держать в кэше только то, что реально запрашивается клиентами.

У бекенда нет возможности узнать, ответ бекенда по какому-то урлу
еще лежит в кэше или его там уже давно нет. В результате "замещение"
контента в кэше через proxy_cache_bypass может быть на самом деле
не замещением старого контента, а добавлением туда нового контента
и вымыванием из кэша другого контента, который реально запрашивался
клиентами, что ведет к уменьшению эффективности работы кэша nginx.

Или условную болванку с max-age:0, которая будет обновлена по первому же
запросу от клиента

и при proxy_cache_use_stale updating; эта болванка будет отдана клиенту.

а proxy_cache_lock действует только при заполнении нового элемента кэша.

На первый взгляд, PURGE не кажется необходимым средством.
Хотя, вероятно. может упростить жизнь в каких-то конфигурациях.

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

Директиву proxy_cache_purge
можете сделать доступной в open source версии nginx?

--
Best regards,
 Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить