Re: Не создаются директории для кэша и nginx не кэширует файлы
Maxim Dounin
mdounin at mdounin.ru
Thu Jan 15 13:33:46 UTC 2015
Hello!
On Thu, Jan 15, 2015 at 01:19:31PM +0300, Maksim Kulik wrote:
> Здравствуйте!
> Пробую настраивать кэширование контента, поступающего с бэкенда. Директория
> для кэша появляется (в моем случае /var/tmp/nginx-cache), но не заполняется.
> В конфигурации есть следующее:
[...]
> * proxy_cache secondary;*
> * proxy_cache_valid any 1h;*
> * proxy_ignore_headers "Expires" "Cache-Control" "Set-Cookie";*
> * proxy_cache_key "$host$request_uri";*
[...]
> Записи из дебаг-лога касательно кэша следующие:
>
> 2015/01/15 12:59:21 [debug] 40892#0: *14266 http cache key: "
> example.com/category/networks/"
> 2015/01/15 12:59:21 [debug] 40892#0: *14266 http file cache exists: -5 e:0
> 2015/01/15 12:59:21 [debug] 40892#0: *14266 cache file:
> "/var/tmp/nginx-cache/c/f/b1a01f3fd8c3e9c8908accfa9d8785fc"
> 2015/01/15 12:59:21 [debug] 40892#0: *14266 http upstream cache: -5
> 2015/01/15 12:59:21 [debug] 40892#0: *14266 http file cache free, fd: -1
Судя по тому, что зовётся ngx_http_file_cache_free(), по каким-то
причинам до сохранения в кеш дело не доходит. Это может быть,
например, из-за того, что ответ получен не полностью, или
сохранение в кеш запрещено заголовками ответа (помимо
перечисленных в proxy_ignore_headers, есть ещё как минимум
X-Accel-Expires и "Vary: *"), или обработка запроса
перенаправлена в другое место (X-Accel-Redirect).
[...]
> Что может быть не так? Какие данные еще могут быть полезными для
> диагностики?
См. выше. Если не поможет разобраться - отладочный лог имеет
смысл показывать полностью.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru