nginx fastcgi_cache и Vary headers

Alex Vasilenko aa.vasilenko на gmail.com
Ср Мар 30 17:22:18 UTC 2016


Приветствую!

Есть контент, который кэшируется директивами fastcgi_cache:

> fastcgi_cache_path /var/cache/nginx/api_cache levels=1:2
keys_zone=api_cache:50m max_size=1000m inactive=600m;
> fastcgi_cache api_cache;
> fastcgi_cache_valid 200 1m;
> fastcgi_cache_use_stale error timeout invalid_header updating;
> fastcgi_cache_lock on;
>  fastcgi_cache_key
"$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";

Цель - кэшировать ответы в зависимости от языка в запросе Accept-Language
Собственно ответ следующего вида:
> HTTP/1.1 200 OK
> Server: nginx
> Date: Wed, 30 Mar 2016 17:13:01 GMT
> Content-Type: application/json
> Transfer-Encoding: chunked
> Connection: close
> Vary: Accept-Encoding
> Cache-Control: max-age=3600, public
> Expires: Wed, 30 Mar 2016 18:12:26 GMT
> Vary: Accept-Language

Насколько я понял из документации
<http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_valid>
это
должно позволить переопределять и время кэширования и fastcgi_cache_key
будет немного другой и включит в себе хедеры в Vary. Но если б все было как
предполагалось - я бы сюда не писал :). Собственно и Cache-Control и Vary
заголовки игнорируются, кэшируется на минуту с первым попавшим языком. Что
я не так делаю?

nginx version: nginx/1.8.1

Спасибо!
Александр
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20160330/3c884781/attachment.html>


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