The default proxy_cache_key is “$scheme$proxy_host$request_uri;” This
means that when a non-cacheable page includes a cacheable part via SSI,
the part is stored using the key of the main page, and the next person
to view the main page will have only that part displayed to them.
Replacing $request_uri with just $uri fixed this for me – now I can
have a dynamic layout with several static chunks inside. Perhaps it
would be worth updating the default, as I see no downside to using $uri,
and it could save others from the same confusion?
Posted at Nginx Forum: