Hello! On Tue, Jun 06, 2017 at 07:33:24PM +0000, Rafael Cirolini wrote:
> We've just updated to 1.12 to use the stale-while-revalidate option. > > The application is who sends the cache-control header, like this: > cache-control:max-age=180, stale-while-revalidate=60, stale-if-error=864000 > > If I understood how SWR works, the user shouldn't receive stale content after > 180+60 seconds. > > But we are seing stale content after this time. > X-Cache-Status: STALE > > Our DevOps team did a debug: > 2017/05/22 15:14:31 [debug] 21376#21376: *44 http file cache expired: 4 > 1495476646 1495476871 > 2017/05/22 15:14:31 [debug] 21376#21376: *44 http upstream cache: 4 > 2017/05/22 15:14:31 [debug] 21376#21376: *44 http file cache send: > /var/cache/nginx/d/d2/fb19e1c85db7bda5c92ce21530bf5d2d > 2017/05/22 15:14:31 [debug] 21376#21376: *44 http ims:1491861925 lm:1491861925 > 2017/05/22 15:14:31 [debug] 21376#21376: *44 http script var: "STALE" > > The correct answer should be EXPIRED after the max-age+SWR time. > > It looks reasonble to you? The behaviour depends on whether you use "proxy_cache_use_stale updating" in your configuration or not: - If it is explicitly configured, it takes precedence over "Cache-Control: stale-while-revalidate=", and nginx will use any stale response available. - If not configured, nginx will follow "stale-while-revalidate=" specified in the response. The debug log provided suggests that the configuration uses "proxy_cache_use_stale updating" and "proxy_cache_background_update on". -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx