/brotli/FastCGI Cache — встроенный механизм кеширования веб-сервера Nginx, позволяющий сохранять готовые HTML-страницы, сгенерированные PHP, и отдавать их посетителям без повторного обращения к PHP-FPM и базе данных. Благодаря этому значительно снижается нагрузка на сервер, сокращается время ответа и увеличивается количество одновременно обслуживаемых пользователей. Для сайтов на WordPress FastCGI Cache является одним из наиболее эффективных способов повышения производительности. В отличие от большинства плагинов кеширования, обработка запросов выполняется непосредственно на уровне веб-сервера, что делает работу сайта быстрее и стабильнее. В этой статье рассмотрим принцип работы FastCGI Cache, настройку Nginx, конфигурацию для WordPress, исключения из кеша, очистку кеша и лучшие практики использования.

Что такое FastCGI Cache

При обычной работе WordPress каждый запрос проходит несколько этапов:
  1. браузер обращается к Nginx;
  2. Nginx передает запрос PHP-FPM;
  3. PHP выполняет код WordPress;
  4. WordPress обращается к базе данных MySQL;
  5. генерируется HTML-страница;
  6. страница отправляется пользователю.
При использовании FastCGI Cache готовая HTML-страница сохраняется на диске. Последующие посетители получают уже подготовленный результат, минуя PHP и базу данных.

Преимущества FastCGI Cache

  • значительное ускорение загрузки страниц;
  • уменьшение нагрузки на процессор;
  • снижение количества PHP-процессов;
  • уменьшение числа SQL-запросов;
  • повышение производительности при высокой посещаемости;
  • экономия оперативной памяти.

Создание каталога кеша

Создайте директорию для хранения файлов кеша:
mkdir -p /var/cache/nginx/fastcgi
chown -R www-data:www-data /var/cache/nginx
Убедитесь, что пользователь, от имени которого работает Nginx, имеет права на запись.

Настройка зоны кеширования

Добавьте в файл nginx.conf:
fastcgi_cache_path /var/cache/nginx/fastcgi
levels=1:2
keys_zone=WORDPRESS:100m
inactive=60m
max_size=5g;
Параметры означают:
  • levels — структура хранения файлов;
  • keys_zone — объем памяти для хранения ключей;
  • inactive — время хранения неиспользуемого кеша;
  • max_size — максимальный размер каталога.

Подключение FastCGI Cache

В блок обработки PHP добавьте:
location ~ \.php$ {

    include fastcgi_params;

    fastcgi_pass unix:/run/php/php8.3-fpm.sock;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    fastcgi_cache WORDPRESS;

    fastcgi_cache_valid 200 301 302 60m;

    fastcgi_cache_valid 404 1m;

}

Добавление заголовка состояния кеша

Для проверки работы удобно добавить HTTP-заголовок:
add_header X-FastCGI-Cache $upstream_cache_status;
Возможные значения:
  • MISS — запись отсутствует;
  • HIT — страница получена из кеша;
  • BYPASS — кеш пропущен;
  • EXPIRED — кеш устарел;
  • UPDATING — выполняется обновление.

Настройка пропуска кеша для авторизованных пользователей

Административная часть WordPress и личные кабинеты не должны кешироваться.
set $skip_cache 0;

if ($request_method = POST) {
    set $skip_cache 1;
}

if ($query_string != "") {
    set $skip_cache 1;
}

if ($http_cookie ~*
"(wordpress_logged_in|comment_author|woocommerce_items_in_cart|wp-postpass)") {
    set $skip_cache 1;
}

fastcgi_cache_bypass $skip_cache;

fastcgi_no_cache $skip_cache;

Исключение административной панели

location ~* ^/wp-admin/ {

    fastcgi_cache_bypass 1;

    fastcgi_no_cache 1;

}

Исключение страницы входа

location = /wp-login.php {

    fastcgi_cache_bypass 1;

    fastcgi_no_cache 1;

}

Исключение WooCommerce

Для интернет-магазинов необходимо исключить динамические страницы:
  • корзина;
  • оформление заказа;
  • личный кабинет;
  • страницы оплаты.
Пример:
if ($request_uri ~*
"/cart|/checkout|/my-account") {
    set $skip_cache 1;
}

Настройка времени хранения

Для редко изменяемых страниц:
fastcgi_cache_valid 200 12h;
Для новостных сайтов:
fastcgi_cache_valid 200 10m;
Для интернет-магазинов обычно используют 5–30 минут в зависимости от частоты обновления товаров.

Очистка кеша

Полностью удалить кеш можно командой:
rm -rf /var/cache/nginx/fastcgi/*
После очистки рекомендуется перезагрузить конфигурацию:
systemctl reload nginx

Проверка конфигурации

Перед применением изменений выполните:
nginx -t
Если ошибок нет:
systemctl reload nginx

Проверка работы кеша

Выполните запрос:
curl -I https://example.com
Если настройка выполнена правильно, в ответе появится:
X-FastCGI-Cache: HIT

Типичные ошибки

  • неверный путь к каталогу кеша;
  • отсутствуют права на запись;
  • не настроен пропуск кеша для авторизованных пользователей;
  • кешируются страницы оформления заказа;
  • не добавлен заголовок проверки состояния кеша;
  • слишком маленький размер зоны keys_zone;
  • не выполнена проверка конфигурации перед перезапуском Nginx.

Рекомендации по использованию

  • Используйте FastCGI Cache совместно с PHP-FPM.
  • Исключайте административную панель и динамические страницы из кеша.
  • Настройте автоматическую очистку кеша после публикации новых материалов.
  • Регулярно контролируйте размер каталога кеша.
  • Используйте HTTP/2 или HTTP/3 вместе с HTTPS.
  • Дополнительно включите сжатие Gzip или Brotli.
  • Следите за заголовком X-FastCGI-Cache для контроля эффективности кеширования.

Часто задаваемые вопросы

Чем FastCGI Cache отличается от плагинов кеширования WordPress?

FastCGI Cache работает на уровне веб-сервера Nginx и не требует запуска PHP для отдачи закешированных страниц. Это делает его значительно быстрее большинства плагинов. FastCGI Cache

Можно ли использовать FastCGI Cache вместе с CDN?

Да. FastCGI Cache ускоряет генерацию страниц на сервере, а CDN ускоряет доставку статических файлов и кешированных страниц пользователям по всему миру.

Нужно ли отключать плагины кеширования?

Если FastCGI Cache полностью настроен и покрывает все задачи кеширования страниц, использование нескольких систем кеширования одновременно может привести к конфликтам и усложнить обслуживание сайта.

Подходит ли FastCGI Cache для WooCommerce?

Да, но необходимо правильно исключить из кеширования корзину, оформление заказа, личный кабинет и другие страницы с персонализированным содержимым. FastCGI Cache — один из самых эффективных инструментов повышения производительности WordPress на сервере Nginx. Благодаря кешированию готовых HTML-страниц значительно уменьшается нагрузка на PHP-FPM и базу данных, сокращается время ответа сервера и повышается устойчивость сайта к высокой посещаемости. Правильная настройка зон кеширования, исключений для динамических страниц, контроля состояния кеша и регулярная очистка позволяют получить максимальный прирост скорости без ущерба для функциональности сайта.