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