Как правильно организовать частичное кэширование динамики в nginx?

Задача в следующем, нужно закешировать страницы на уровне nginx, за исключением некоторых блоков, движок wordpress, стек nginx+php-fpm.

причина, огромные нагрузки после 1000req/s , php-fpm начинает грузить проц в 100%. Изменять сам вордпресс, плагины и т.д. практически уже невозможно, устоявшийся сайт с большим трафиком.

Подскажите, это вообще возможно? Если да, то куда копать и где подсмотреть? к сожалению гугл не сильно помог.

Спасибо!
  • Вопрос задан
  • 681 просмотр
Решения вопроса 2
kotomyava
@kotomyava
Системный администратор
Без изменения кода сайта не получится.
Можно, например, кешировать страницы, а изменяемые блоки грузить с помощью JS. Это, конечно, потребует изменения сайта, и может быть не так и эффективно, т.к. запросов будет не мало, хоть каждый и будет легче чем запрос страницы, если правильно реализовать.

Но лучше кешировать там, где можно кеш правильно инвалидировать, не тупо по ttl, т.е. на уровне приложения. Решений для кеширования разной степени навороченности для WP масса. Надо правильно выбрать и правильно настроить...
Ответ написан
Сам nginx не умеет кешировать (upd: кешировать нужные блоки на страницах), но можно использовать Varnish с ESI для кеширования динамических блоков сайта. Самый простой способ это поставить Varnish перед nginx (тогда Varnish будет на 80 порту, а nginx на любом другом), но чтобы добиться высокой производительности лучше повозиться и настроить связку nginx - Varnish - nginx, что более сложно, но скорее всего даст более желаемый результат в вашем случае.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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