как уменьшить размер кеша nginx?

VovansystemS vovansystems на gmail.com
Пт Июл 31 12:22:43 UTC 2015


Добрый день,

есть старый, но довольно большой https legacy-сайт на php и у
владельцев нет ресурсов его переделывать. сайт состоит из нескольких
миллионов страниц в районе 60 кб каждая (14 кб после gzip на nginx).

основной трафик на сайт - поисковый по низкочастотным запросам и если
распарсить логи, получается что за сутки загружается порядка сотен
тысяч уникальных страниц (как поисковыми роботами и пауками, так и
клиентами) и редко какая страница загружается больше чем 2 раза за
сутки.

для обеспечения хотя бы минимальной отказоустойчивости, есть идея
кешировать ответы backend'а, чтобы в случае его падения (задумчивости)
была возможность отдать хоть что-то через fastcgi_cache_use_stale. но
размер кеша всех целевых страниц сайта превысит все разумные пределы
(60кб х 1 000 000 страниц ≈ 58 гб)

каким образом можно "сжимать" кеш nginx, кроме доработки приложения,
так, чтобы оно сразу отдавало сжатый ответ?

( здесь я читал: http://forum.nginx.org/read.php?21,256725,256739#msg-256739 )

как один из вариантов вижу использование какой-нибудь файловой
системы, которая умеет сжимать файлы на лету, но тут много вопросов к
скорости работы fuse (по крайней мере раньше она работала медленно,
изменилась ли ситуация?)

в принципе, cloudflare мог бы решить задачу, если купить бизнес план и
закачать туда свои сертификаты, но интересно рассмотреть вариант с
nginx, потому как у cloudflare есть ещё косяки с доступностью для
некоторых клиентов и роботов.

может быть у кого-либо есть похожий опыт?


Подробная информация о списке рассылки nginx-ru