On Oct 8, 2015, at 12:09 PM, Juriy Strashnov <juriy.fob...@gmail.com> wrote: > Коллеги, всем привет! > > Возникла нужда кратковременно кешировать ответы 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 его уже нет:
Используйте параметр always, подробности тут: http://nginx.org/r/add_header/ru См. также debug log на предмет сообщений “file cache send”. -- Sergey Kandaurov _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru