Welcome! Log In Create A New Profile

Advanced

Re: proxy_no_cache / proxy_cache_bypass

Sergey Shepelev
July 08, 2010 07:20AM
>> > На данный момент proxy/fastcgi/uwsgi/scgi_no_cache игнорируют ответ
>> > в кэше и идут к бэкенду. Но полученный ответ может быть закэширован,
>> > если бэкенд это явно разрешил с помощью X-Accel-Expres, Expires или
>> > Cache-Control. proxy_cache_valid при этом не учитываются.
>> >
>> > Есть идея ввести proxy_cache_bypass, при которой ответ в кэше игнорируется,
>> > но полученный ответ может быть закэширован в зависимости от разрешения
>> > бэкнда _И_ директив proxy_cache_valid.
>> >
>> > Какое поведение в этом случае оставить для proxy_no_cache - не понятно:
>> > то ли вообще запретить кэшировать ответ, то ли оставить как есть.
>>
>> По хорошему, нужны возможности гибкого управления в двух местах:
>>
>> 1. Берём ли мы ответ из кеша.  Сейчас это делается через
>> proxy_no_cache, что по моим ощущениям вполне достаточно.
>>
>> 2. Кладём ли мы ответ в кеш.  Сейчас можно только либо полностью
>> доверится бекенду, либо совсем не доверять и использовать
>> proxy_cache_valid.
>>
>> Если я правильно понял предлагаемую семантику proxy_cache_bypass,
>> то предлагается управлять сразу и (1) и (2).  Мне не видится это
>> хорошим решением.
>>
>> Вот, например, use case: файлы лежат на бекенде и большие, нужно
>> поддерживать Range к бекендам, при этом хочется кеширование для
>> полностью скаченных файлов.  Решение - брать ответы из кеша в если
>> они там есть, если нет - отправлять запрос на бекенд вместе с
>> заголовком Range, и не кешировать 206 ответы.  Сейчас это можно
>> сделать только отказавшись от учёта Cache-Control/Expires.  И
>> proxy_cache_bypass в решении этой проблемы никак не поможет.
>>
>> IMHO, правильно увеличивать именно возможности управления (2).
>>
>> Что касается proxy_cache_bypass, то аналогичное поведение
>> может быть достигнуто с помощью proxy_no_cache и директивы,
>> включающей семантику "в зависимости от разрешения бэкнда _И_
>> директив proxy_cache_valid".  Что будет логичнее и гибкости даст
>> существенно больше.
>
> Логично, тогда можно раздедить так: proxy_cache_bypass определяет,
> брать ли ответ из кэша, а proxy_no_cache - класть ли ответ в кэш,
> если он был в состоянии bypass.
>

Вариант: proxy_no_cache убрать; для принудительного складывания в кэш
proxy_force_cache или что-то в таком духе.


Ещё вариант: вместо двух директив сделать одну, например
proxy_cache_strategy (или force) с двумя опциональными аргументами:
bypass и store.

proxy_cache_force bypass; # не берём ответ из кэша
proxy_cache_force store; # кладём ответ в кэш, даже если
бекенд не хочет
proxy_cache_force bypass store; # и то, и другое
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

proxy_no_cache / proxy_cache_bypass

Igor Sysoev July 08, 2010 05:14AM

Re: proxy_no_cache / proxy_cache_bypass

Maxim Dounin July 08, 2010 06:38AM

Re: proxy_no_cache / proxy_cache_bypass

Igor Sysoev July 08, 2010 06:50AM

Re: proxy_no_cache / proxy_cache_bypass

Oleksandr V. Typlyns'kyi July 08, 2010 07:00AM

Re: proxy_no_cache / proxy_cache_bypass

Igor Sysoev July 08, 2010 07:44AM

Re: proxy_no_cache / proxy_cache_bypass

Igor Sysoev July 08, 2010 09:26AM

Re: proxy_no_cache / proxy_cache_bypass

Sergey Shepelev July 08, 2010 09:44AM

Re: proxy_no_cache / proxy_cache_bypass

Igor Sysoev July 08, 2010 09:46AM

Re: proxy_no_cache / proxy_cache_bypass

Sergey Shepelev July 08, 2010 10:22AM

Re: proxy_no_cache / proxy_cache_bypass

Oleksandr V. Typlyns'kyi July 08, 2010 10:32AM

Re: proxy_no_cache / proxy_cache_bypass

Boris Dolgov July 08, 2010 10:46AM

Re: proxy_no_cache / proxy_cache_bypass

Igor Sysoev July 08, 2010 10:56AM

Re: proxy_no_cache / proxy_cache_bypass

Boris Dolgov July 08, 2010 11:08AM

Re: proxy_no_cache / proxy_cache_bypass

silly sad July 09, 2010 06:02AM

Re: proxy_no_cache / proxy_cache_bypass

Sergey Shepelev July 09, 2010 06:18AM

Re: proxy_no_cache / proxy_cache_bypass

Igor Sysoev July 09, 2010 10:00AM

Re: proxy_no_cache / proxy_cache_bypass

Igor Sysoev July 09, 2010 09:58AM

Re: proxy_no_cache / proxy_cache_bypass

Sergey Shepelev July 08, 2010 07:20AM

Re: proxy_no_cache / proxy_cache_bypass

Maxim Dounin July 08, 2010 10:24AM

Re: proxy_no_cache / proxy_cache_bypass

Igor Sysoev July 08, 2010 11:16AM

Re: proxy_no_cache / proxy_cache_bypass

Maxim Dounin July 08, 2010 09:34PM

Re: proxy_no_cache / proxy_cache_bypass

Oleksandr V. Typlyns'kyi July 08, 2010 11:18AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 221
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready