Welcome! Log In Create A New Profile

Advanced

Re: nginx fastcgi_cache и Vary headers

March 30, 2016 05:04PM
Максим,

Стыдно признать, но вы оказались полностью правы. Cache-Control с Expires
был в fastcgi_ignore_headers. А Vary в ответе был еще один, который
собственно перезатирал предыдущие.

Как я могу указать несколько заголовков с Vary в таком случае? Vary:
Accept-Language, X-Authentication (через запятую)?
Будет ли Accept-Encoding автоматически добавлен нджинксом в ответ в Vary
хедер в таком случае?

Спасибо!
Александр

On Wed, Mar 30, 2016 at 9:35 PM Maxim Dounin <mdounin@mdounin.ru> wrote:

> Hello!
>
> On Wed, Mar 30, 2016 at 09:41:59PM +0300, Andrey Kopeyko wrote:
>
> > On Wed, 30 Mar 2016, Alex Vasilenko wrote:
>
> [...]
>
> > >Собственно и 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 разных файла в кеше.
>
> Начиная с версии 1.7.7 nginx умеет сам смотреть на заголовок Vary,
> возвращаемый в ответе бекендом, и учитывать его при кешировании,
> при необходимости создавая для разных вариантов ресурса
> производные ключи и кеш-файлы, http://nginx.org/ru/CHANGES.ru:
>
> *) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в
> заголовке ответа бэкенда.
>
> От разрастания кеша это, конечно, не спасёт, но должно работать
> само. (Чтобы кеш не разростался сверх необходимого - нужно знать
> логику выбора представления на бекенде, и повторить её в рамках
> создания ключа кеширования, других вариантов просто нет.)
>
> Судя по тому, что "и Cache-Control и Vary заголовки игнорируются" -
> проблему стоит искать где-то в районе конфига, там скорее всего
> кто-то написал fastcgi_ignore_headers как минимум со значениями
> Cache-Control, Expires и Vary.
>
> (Отдельно отмечу, что нескольких заголовков Vary в ответе -
> плохая идея, nginx использует последний из них. Но в данном
> случае проблема явно не в этом, т.к. Cache-Control также
> игнорируется.)
>
> --
> Maxim Dounin
> http://nginx.org/
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

nginx fastcgi_cache и Vary headers

mente March 30, 2016 01:24PM

Re: nginx fastcgi_cache и Vary headers

Andrey Kopeyko March 30, 2016 02:44PM

Re: nginx fastcgi_cache и Vary headers

Maxim Dounin March 30, 2016 03:36PM

Re: nginx fastcgi_cache и Vary headers

mente March 30, 2016 05:04PM

Re: nginx fastcgi_cache и Vary headers

Maxim Dounin March 31, 2016 11:52AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 272
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