При проксировании API и раздаче статики кэш часто усложняется из-за разных кодировок gzip, Brotli и заголовков Accept-Encoding. Если сервер отдаёт разные представления одного ресурса, кэш должен учитывать эти параметры - иначе клиент получит неподходящий ответ.
Ключевое правило: если сервер может вернуть разные версии контента, заголовок Vary должен включать всё, от чего зависит выбор варианта. Иначе кэш перепутает версии.
Подробный разбор:
https://m.vk.com/@recura_tech-nginx-mozhet-keshirovat-otvety-otdelno-dlya-kazhdogo-variant