<div dir="ltr"><div>Коллеги, всем привет!</div><div><br></div><div>Возникла нужда кратковременно кешировать ответы backend'a. Проблема в том, что надо не только код 200, но и 400. </div><div><br></div><div>Попробовал так (в лоб):</div><div><br></div><div>proxy_cache_path /var/cache/nginx/apicache levels=1:2 keys_zone=apicache:10m;<br></div><div><br></div><div>location /api {</div><div>        <...><br></div><div><br></div><div>        proxy_cache apicache;<br></div><div>        proxy_cache_use_stale error timeout updating;</div><div>        proxy_cache_lock on;</div><div>        proxy_cache_valid any 30s;</div><div><b>        proxy_cache_valid 400 30s;</b></div><div>        proxy_cache_methods POST;</div><div>        proxy_cache_key "$request_uri|$request_body";</div><div><br></div><div>        proxy_ignore_headers X-Accel-Expires Expires Cache-Control;</div><div><br></div><div>        add_header X-Cached $upstream_cache_status;</div><div>}</div><div><br></div><div>Не помогло! Если на код 200 в ответе появляется заголовок:</div><div><div><br></div><div>HTTP/1.1 200 OK</div><div>Server: nginx</div><div>Date: Thu, 08 Oct 2015 08:54:38 GMT</div><div>Content-Length: 0</div><div>Connection: keep-alive</div><div><b>X-Cached: HIT</b></div></div><div><br></div><div>то на 400 его уже нет:</div><div><br></div><div><div>HTTP/1.1 400 Bad Request</div><div>Server: nginx</div><div>Date: Thu, 08 Oct 2015 08:54:30 GMT</div><div>Content-Length: 0</div><div>Connection: keep-alive</div></div><div><br></div><div>ЧЯДНТ?</div><div><br></div>-- <br><div class="gmail_signature">Best regards, Juriy Strashnov<br><br>Please consider the environment before printing this email.</div>
</div>