AlekseyArh
@AlekseyArh
Кибер существо

Как хранить сжатый кэш Nginx?

Прежде чем приступить к методу научного тыка, решил поискать готовые примеры, но ничего не нашёл, возможно тема будет кому то полезна.

Делаю сервис, хочу кэшировать выдачу, но не хочу что бы nginx на каждый запрос производил операцию сжатия.
Когда то давно на nginx+lua я кэш хранил в редисе в сжатом виде, но если клиент не поддерживает сжатие, то разжимал перед отдачей с помощью zlib.
Сейчас хочу сделать по классике, когда есть простой nginx и кэш он сам хранит у себя в файлах.
В идеале кэш хранить сжатым для экономии места, но процессор приоритетней.
Так как тут нет необходимости экономить память редиса, можно даже хранить две версии кэша, сжатый и не сжатый, если пользователь поддерживает сжатие, то отдавать сжатый, если нет, то не сжатый. Хотя не хотелось бы что бы какой то парсер пошёл по непрогретому несжатому кэшу.

Допустим если условный бэк в виде localhost:8080 куда ходит nginx за несжатым ответом. Какие могут быть варианты и подводные камни?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
AlekseyArh
@AlekseyArh Автор вопроса
Кибер существо
Добрался сегодня до возможности всё попробовать самому, по этому сам себе отвечу к чему пришёл.

1 - Нужно на приложении, куда проксирует nginx отдавать уже сжатый ответ. Можно как то через сжимающий прокси заморочиться, но проще и за меньшее количество посредников сжать в приложении.
63aa10ef209c6680023825.png

2 - В nginx нужно отключить директиву gzip и в нужном location включить директиву gunzip.
63aa10fda05ea318263473.png
У меня gunzip (--with-http_gunzip_module) уже была включена в nginx. Возможно уже собирал с ней и забыл, ну или она сейчас работает из коробки. Можно посмотреть nginx -V

В моём случае приложение на golang с небольшой html выдачей. Без сжатия файл nginx кэша весит 20кб, с сжатием 8кб.

Делаю curl на порт приложения, curl пишет что там бинарник. Делаю curl на nginx, который проксирует на порт приложения, curl отображает мой html. Файл кэша при этот только один, сжатый.

Теперь думаю стоит ли вообще разжимать, кто сейчас не использует сжатие?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы