Re: Кеширование запросов без куков
Maxim Dounin
mdounin at mdounin.ru
Fri Apr 10 14:12:41 UTC 2015
Hello!
On Fri, Apr 10, 2015 at 11:03:00AM +0300, Иван Мишин wrote:
> Добрый день!
>
> Обратил внимание что если делать запрос с отсутствующим заголовком Cookie
> то nginx не кеширует такой запрос.
>
> Например если с помощью утилиты curl сделать запрос, то он не закешируется,
> а если в curl прописать заголовок Cookie к запросу то кеш срабатывает.
>
> Как решить эту проблему? Как сделать чтобы nginx кешировал не взирая на
> наличие заголовка Cookie в запросе.
По умолчанию nginx кеширует запросы вне зависимости от наличия или
отсутствия заголовка Cookie в запросе.
Скорее всего, в вашем случае проблема в том, что в ответе бекенда
присутствует заголовок Set-Cookie (и это, в свою очередь,
случается только для запросов без Cookie).
Если это требуется, то разрешить кеширование ответов с заголовком
Set-Cookie можно с помощью директивы proxy_ignore_headers (см.
http://nginx.org/r/proxy_ignore_headers/ru) или аналога для других
протоколов. Но обычно это плохая идея, т.к. в результате одна и
та же кука будет отдаваться всем пользователям, получившим ответ
из кеша. И, соответственно, подобную настройку следует дополнять
директивой proxy_hide_header Set-Cookie, чтобы заголовок
Set-Cookie не отдавался клиентам.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru