<div dir="ltr"><div class="gmail_extra">Спасибо за ответ!</div><div class="gmail_extra"><br><div class="gmail_quote">2015-01-15 16:24 GMT+02:00 Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hello!<br>
<span class=""><br>
On Thu, Jan 15, 2015 at 03:54:23PM +0200, Олег Черній wrote:<br>
<br>
> Сегодня удивил эксперимент, при котором запрашивался блок, ложился в кэш и<br>
> без проблем этот кэш можно было почистить из браузера.<br>
><br>
> Но при попытке запросить это же адрес на очистку из curl или wget получал<br>
> 404 и кеш не чистился.<br>
><br>
> Как оказалось это реакция на несовпадение заголовка "Accept" при запросе<br>
> контента, который помещается в кэш и запроса который этот контент должен<br>
> удалить. Если заголовки совпадают -- все Ok, если нет - 404 и кэш не<br>
> чиститься.<br>
<br>
</span>[...]<br>
<span class=""><br>
> В бинарной части вначале файлика с кэшем видно, что добавился "запакованый"<br>
> заголовок "Accept", видимо проблема связана с этим.<br>
><br>
> Не придумал ничего лучшего чем откатиться до nginx 1.7.6 + ngx_cache_purge<br>
> 2.1 -- там этой проблемы нет. Может в кэше можно этот "Accept" как-то<br>
> отрубить?<br>
<br>
</span>Начиная с 1.7.7 nginx умеет обрабатывать заголовок Vary в ответах<br>
бекенда, кешируя несколько вариантов ответа:<br>
<br>
    *) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в<br>
       заголовке ответа бэкенда.<br>
<br>
Если нужно, старое поведение можно вернуть с помощью директивы<br>
proxy_ignore_headers (<a href="http://nginx.org/r/proxy_ignore_headers/ru" target="_blank">http://nginx.org/r/proxy_ignore_headers/ru</a>):<br>
<br>
    proxy_ignore_headers Vary;<br></blockquote><div><br></div><div>Не помогло, в файлике кеша в бинарной части нету "Accept", но далее в тексте в заголовках есть "Vary: Accept" и все также не работает при разных "Accept".</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Совсем правильное решение - убрать из ответов Vary бекенда, если<br>
он вам на самом деле не нужен.<br></blockquote><div><br></div><div>Это помогло, сначала вырубил на бекенде без анализа кода:</div><div><span style="font-size:13px">more_clear_headers 'Vary';</span><br></div><div><br></div><div>Потом нашел установку заголовка в движке. Большое спасибо -- проблема решена.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span class=""><font color="#888888"><br>
--<br>
Maxim Dounin<br>
<a href="http://nginx.org/" target="_blank">http://nginx.org/</a><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div>---</div>С уважением, Олег Черний,<br>руководитель отдела разработки  <a href="http://AUTO.RIA.com" target="_blank">AUTO.RIA.com</a><br><br>RIA.com<br>

тел./факс.: 0 432 555-200 (многоканальний)<br>моб: 0 (67) 295-27-52<div>E-mail: <font color="#0000ee"><u><a href="mailto:oleg.cherniy@ria.ua" target="_blank">oleg.cherniy@ria.ua</a></u></font><br></div></div></div></div>
</div></div>