"proxy_cache_valid 400" -- возможно ли?
Juriy Strashnov
juriy.foboss на gmail.com
Чт Окт 8 09:09:20 UTC 2015
Коллеги, всем привет!
Возникла нужда кратковременно кешировать ответы backend'a. Проблема в том,
что надо не только код 200, но и 400.
Попробовал так (в лоб):
proxy_cache_path /var/cache/nginx/apicache levels=1:2
keys_zone=apicache:10m;
location /api {
<...>
proxy_cache apicache;
proxy_cache_use_stale error timeout updating;
proxy_cache_lock on;
proxy_cache_valid any 30s;
* proxy_cache_valid 400 30s;*
proxy_cache_methods POST;
proxy_cache_key "$request_uri|$request_body";
proxy_ignore_headers X-Accel-Expires Expires Cache-Control;
add_header X-Cached $upstream_cache_status;
}
Не помогло! Если на код 200 в ответе появляется заголовок:
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 08 Oct 2015 08:54:38 GMT
Content-Length: 0
Connection: keep-alive
*X-Cached: HIT*
то на 400 его уже нет:
HTTP/1.1 400 Bad Request
Server: nginx
Date: Thu, 08 Oct 2015 08:54:30 GMT
Content-Length: 0
Connection: keep-alive
ЧЯДНТ?
--
Best regards, Juriy Strashnov
Please consider the environment before printing this email.
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20151008/2c5b80ec/attachment.html>
Подробная информация о списке рассылки nginx-ru