Using proxy_cache_background_update

Maxim Dounin mdounin at mdounin.ru
Sun Feb 26 13:14:33 UTC 2017


Hello!

On Sun, Feb 26, 2017 at 10:43:53AM +0100, Jean-Paul Hemelaar wrote:

> Hi all,
> 
> I tested the new proxy_cache_background_update function to serve stale
> content while fetching an update in the background.
> 
> I ran into the following issue:
> - PHP application running on www.example.com
> - Root document lives on /index.php
> 
> As soon as the cache has expired:
> - A client requests http://www.example.com/
> - Nginx returns the stale response
> - In the background Nginx will fetch
> http://www.mybackend.com/index.html (index.html
> instead of index.php or just /)
> - The backend server returns a 404 (which is normal)
> - The root document remains in stale state as Nginx is unable to fetch it
> properly
> 
> As a workaround I included "rewrite ^/index.html$ / break;" to rewrite the
> /index.html call to a simple / for the backend server.
> This works, but is not ideal.
> 
> Is there a better way to tell Nginx to just fetch "/"?

Please show your configuration.

In the background nginx is expected to fetch the same resource 
that was originally requested.  It uses a separate subrequest 
though, so it might end up requesting a different resource when 
using some non-trivial configurations where a resource requested 
depends on additional factors which are different in the 
subrequest.

-- 
Maxim Dounin
http://nginx.org/


More information about the nginx mailing list