Добрался сегодня до возможности всё попробовать самому, по этому сам себе отвечу к чему пришёл.
1 - Нужно на приложении, куда проксирует nginx отдавать уже сжатый ответ. Можно как то через сжимающий прокси заморочиться, но проще и за меньшее количество посредников сжать в приложении.
2 - В nginx нужно отключить директиву gzip и в нужном location включить директиву gunzip.
У меня gunzip (--with-http_gunzip_module) уже была включена в nginx. Возможно уже собирал с ней и забыл, ну или она сейчас работает из коробки. Можно посмотреть nginx -V
В моём случае приложение на golang с небольшой html выдачей. Без сжатия файл nginx кэша весит 20кб, с сжатием 8кб.
Делаю curl на порт приложения, curl пишет что там бинарник. Делаю curl на nginx, который проксирует на порт приложения, curl отображает мой html. Файл кэша при этот только один, сжатый.
Теперь думаю стоит ли вообще разжимать, кто сейчас не использует сжатие?