<div dir="ltr">Спасибо большое! Не догадался, что кеш работает, а заголовок не пишет.<div><br></div><div>add_header X-Cached $upstream_cache_status always; начало вставлять заголовок и в 400е ответы.<br></div><div><br></div><div><div>HTTP/1.1 400 Bad Request<br></div><div>Server: nginx</div><div>Date: Thu, 08 Oct 2015 10:29:40 GMT</div><div>Content-Length: 0</div><div>Connection: keep-alive</div><div><b>X-Cached: HIT</b></div><div class="gmail_extra"><br><div class="gmail_quote">2015-10-08 13:21 GMT+03:00 Sergey Kandaurov <span dir="ltr"><<a href="mailto:pluknet@nginx.com" target="_blank">pluknet@nginx.com</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"><span class="">On Oct 8, 2015, at 12:09 PM, Juriy Strashnov <<a href="mailto:juriy.foboss@gmail.com">juriy.foboss@gmail.com</a>> wrote:<br>
> Коллеги, всем привет!<br>
><br>
> Возникла нужда кратковременно кешировать ответы backend'a. Проблема в том, что надо не только код 200, но и 400.<br>
><br>
> Попробовал так (в лоб):<br>
><br>
> proxy_cache_path /var/cache/nginx/apicache levels=1:2 keys_zone=apicache:10m;<br>
><br>
> location /api {<br>
>         <...><br>
><br>
>         proxy_cache apicache;<br>
>         proxy_cache_use_stale error timeout updating;<br>
>         proxy_cache_lock on;<br>
>         proxy_cache_valid any 30s;<br>
>         proxy_cache_valid 400 30s;<br>
>         proxy_cache_methods POST;<br>
>         proxy_cache_key "$request_uri|$request_body";<br>
><br>
>         proxy_ignore_headers X-Accel-Expires Expires Cache-Control;<br>
><br>
>         add_header X-Cached $upstream_cache_status;<br>
> }<br>
><br>
> Не помогло! Если на код 200 в ответе появляется заголовок:<br>
><br>
> HTTP/1.1 200 OK<br>
> Server: nginx<br>
> Date: Thu, 08 Oct 2015 08:54:38 GMT<br>
> Content-Length: 0<br>
> Connection: keep-alive<br>
> X-Cached: HIT<br>
><br>
> то на 400 его уже нет:<br>
<br>
</span>Используйте параметр always, подробности тут:<br>
<a href="http://nginx.org/r/add_header/ru" rel="noreferrer" target="_blank">http://nginx.org/r/add_header/ru</a><br>
<br>
См. также debug log на предмет сообщений “file cache send”.<br>
<span class=""><font color="#888888"><br>
--<br>
Sergey Kandaurov<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" rel="noreferrer" 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">Best regards, Juriy Strashnov<br><br>Mob. +7 (953) 742-1550<br>E-mail: <a href="mailto:j.strashnov@me.com" target="_blank">j.strashnov@me.com</a><br><br>Please consider the environment before printing this email.</div>
</div></div></div>