Re: HELP! fastcgi_cache_bypass - оно вообще работает хоть у кого-нить?

Maxim Dounin mdounin на mdounin.ru
Чт Фев 24 16:09:28 MSK 2011


Hello!

On Thu, Feb 24, 2011 at 03:19:52PM +0300, Влад Максимов wrote:

> Наткнулся на неприятное: не работает fastcgi_cache_bypass.
> Или я просто не умею его готовить, что тоже возможно.

[...]

>       fastcgi_no_cache $arg_nocache;
>       fastcgi_cache_bypass $arg_nocache;
> 
>       fastcgi_cache_bypass $arg_skipcache;
>   }
> ...
> 
> Если я правильно понимаю документацию, то при обращении http://mydomain.com/cached/block/someData/  - nginx обратится к бэкенду, закеширует ответ на 1 день и содержимое ответа отдаст клиенту.
> При этом если я обращусь с ?skipcache ( http://mydomain.com/cached/block/someData/?skipcache=1 ) то nginx не должен искать эти данные в кеше, а должен обратиться на бэкенд за свежими данными, после чего уже положить их в кеш и отдать клиенту.
> 
> И вот тут начинается самое интересное:
>   1. если я обращаюсь http://mydomain.com/cached/block/someData/  - всё работает, как и предполагалось - кешируется ответ бэка, и последующим запросам клиентов отдаётся всё из кеша
>   2. если я обращаюсь http://mydomain.com/cached/block/someData/?skipcache=1 - всё ломается. При этом в зависимости от размера ответа бэка, этот ответ всё-таки может оказаться в кеше и попасть клиенту (но очень серьёзно побитый), или же я в логе получу строчку в духе upstream sent unsupported FastCGI protocol version: 118 while reading upstream, client: 192.168.1.5, server: some.trashcan.dev, request: "GET /cached/block/someData?skipcache=1 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9005", host: "some.trashcan.dev"
>   3. однако если я обращусь http://mydomain.com/cached/block/someData/?nocache=1 (то есть пробрасывать на бэк и при этом не сохранять в кеш) - тоже всё будет работать. 
> 
> Что делать? Куда копать? 
> Что я пропустил или не понял?

Known issue.

*_cache_bypass работает корректно только если есть такой же 
*_no_cache.

Maxim Dounin



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