On Wed, 30 Mar 2016, Alex Vasilenko wrote:
Приветствую!
Добрый вечер, Alex!
Есть контент, который кэшируется директивами fastcgi_cache:
...
Цель - кэшировать ответы в зависимости от языка в запросе Accept-Language
Собственно ответ следующего вида:
^^^^^
Вот тут у вас начинается недопонимание...
Насколько я понял из документации
<http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_valid>
это
должно позволить переопределять и время кэширования и fastcgi_cache_key
будет немного другой и включит в себе хедеры в Vary.
*_cache_key может включать в себя лишь заголовки запроса; вы же хотите
добавить в него заголовок из ответа бэкенда. Так не получится ;-)
Собственно и Cache-Control и Vary
заголовки игнорируются, кэшируется на минуту с первым попавшим языком.
Вот здесь вы близки к пониманию происходящего, и к решению.
Что я не так делаю?
Вам надо добавить в fastcgi_cache_key заголовок "Accept-Language" из
запроса, как-то так:
fastcgi_cache_key
"$request_method|$http_if_modified_since|$http_if_none_match|$host|http_accept_language|$request_uri";
Но будьте готовы к разрастанию кеша, потому что запросы к одному URI но с
чуть разными заголовками
Accept-Language="ru,ru-RU;q=0.7,en;q=0.3"
и
Accept-Language="ru;q=0.7,en;q=0.3"
создадут 2 разных файла в кеше.
--
Best regards,
Andrey Kopeyko <and...@kopeyko.ru>
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru