O nginx decide se as respostas upstream podem ser armazenadas em cache com base em determinados cabeçalhos. Da documentação :
The following response headers flag a response as uncacheable unless they are ignored:
- Set-Cookie
- Cache-Control containing "no-cache", "no-store", "private", or a "max-age" with a non-numeric or 0 value
- Expires with a time in the past
- X-Accel-Expires: 0
Verifique quais cabeçalhos seu upstream está enviando para o nginx e verifique se eles permitem o armazenamento em cache.