Maxim, one last piece of advice requested. Would it be more proper to turn off i-m-s in the request body (by setting proxy_pass_request_headers to off in the downstream server configuration) instead of turning it off on the upstream server? I think that's more correct behavior, but I'm not sure.
Yes, proxy_cache simply works out of the box, and it's awesome. But I couldn't understand how to use it so that the downstream server doesn't naively GET content again from the upstream after the expiration time period had passed. I would have wanted instead to only have the cache refreshed if i-m-s suggested that the upstream content had changed.