Você deve observar os cabeçalhos recebidos pelo navegador do cliente, pois o armazenamento em cache é feito no navegador do cliente e não no servidor. O Nginx pode adicionar seus próprios cabeçalhos, que podem entrar em conflito com o seu, dependendo da configuração do servidor e dos módulos Nginx adicionados.
Para uma análise mais aprofundada, adicione um dump dos cabeçalhos recebidos pelo navegador do cliente em ambos os casos, onde funcionou e onde não funcionou. Essa comparação pode nos dar a resposta para o mistério.
Veja este post para mais ideias sobre a causa:
Ninx add_header e controle de cache .
Os módulos more_set_headers
e more_clear_headers
são sugeridos aqui para substituir ou limpar os cabeçalhos.