Очистка кэша WordPress на cPanel EA4
Мгновенная, автоматическая недействительность кэша для WordPress — без очистки всего кэша.
🎉 Бесплатный доступ - ограниченное время!
Все модули EA4 в настоящее время бесплатны — подписка не требуется! Узнать больше
-
Автоматическая недействительность
Кэш очищается автоматически при редактировании постов, страниц или комментариев — без необходимости ручного вмешательства
-
Хирургическая точность
Очищается только измененная страница — весь ваш сайт остается закэшированным и молниеносно быстрым
-
Безопасность для нескольких арендаторов
Кэш каждого пользователя cPanel изолирован — пользователи не могут очищать контент друг друга
-
Не требуется кодирования
Работает из коробки с плагином Proxy Cache Purge для WordPress
Настройка за 5 минут
Следуйте этим шагам, чтобы включить интеллектуальную очистку кэша на вашем сервере cPanel.
Шаг 1: Установите модуль очистки кэша
# Установите репозиторий GetPageSpeed (авто-включает репозиторий ea4 на серверах cPanel)
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
# Установите модуль очистки кэша
dnf -y install ea-nginx-cache-purge
Шаг 2: Настройте NGINX
Вы можете включить очистку кэша глобально для всех пользователей или для каждого пользователя.
Создайте /etc/nginx/conf.d/server-includes/cache-purge.conf:
# Включите метод PURGE для очистки кэша (все пользователи)
proxy_cache_purge PURGE from 127.0.0.1;
Этот файл автоматически включается во все серверные блоки пользователей cPanel.
Для пользователя username создайте /etc/nginx/conf.d/users/username/cache-purge.conf:
# Включите метод PURGE для очистки кэша
proxy_cache_purge PURGE from 127.0.0.1;
После создания конфигурации перезагрузите NGINX:
nginx -t && systemctl reload nginx
Шаг 3: Установите плагин Proxy Cache Purge
- Перейдите в Плагины → Добавить новый
- Найдите "Proxy Cache Purge" (slug:
varnish-http-purge) - Нажмите Установить сейчас, затем Активировать
wp plugin install varnish-http-purge --activate
Шаг 4: Настройте Proxy Cache Purge
В админке WordPress:
- Перейдите в Настройки → Proxy Cache Purge
- Установите "Установить пользовательский IP" на:
127.0.0.1 - Нажмите Сохранить настройки
Критическая настройка
Плагин должен отправлять запросы PURGE на 127.0.0.1 (localhost), а не на ваш публичный IP или домен.
Шаг 5: Настройте кэш-бэкенд NGINX
Начиная с Proxy Cache Purge 5.9.0, плагин нативно поддерживает формат wildcard purge NGINX. Настройте его для использования бэкенда NGINX:
- Перейдите в Proxy Cache Purge → Настройки
- В разделе Кэш-бэкенд выберите NGINX
- Нажмите Сохранить настройки
Добавьте в ваш wp-config.php:
define( 'VHP_PURGE_BACKEND', 'nginx' );
Это гарантирует, что когда страница очищается, все закэшированные варианты (gzip, brotli, не сжатые) будут очищены.
Устаревшее: версия плагина < 5.9.0
Если вы используете Proxy Cache Purge версии ниже 5.9.0, создайте
wp-content/mu-plugins/nginx-cache-purge-fix.php:
<?php
/**
* Название плагина: Исправление очистки кэша NGINX
* Описание: Добавляет wildcard к URL для совместимости с заголовком Vary
*/
add_filter("vhp_purgeme_path", function($purgeme, $schema, $host, $path, $pregex, $p) {
if (empty($pregex)) {
$purgeme .= "*";
}
return $purgeme;
}, 10, 6);
Проверьте настройку
# 1. Закэшируйте страницу (первый запрос = MISS, второй = HIT)
curl -sI http://127.0.0.1/sample-page/ -H 'Host: yourdomain.com' -H 'Accept-Encoding: gzip' | grep X-Cache
# X-Cache-Status: MISS
curl -sI http://127.0.0.1/sample-page/ -H 'Host: yourdomain.com' -H 'Accept-Encoding: gzip' | grep X-Cache
# X-Cache-Status: HIT
# 2. Очистите с помощью метода PURGE с wildcard
curl -sX PURGE 'http://127.0.0.1/sample-page/*' -H 'Host: yourdomain.com'
# <h1>Успешная очистка</h1>
# 3. Проверьте, что кэш очищен
curl -sI http://127.0.0.1/sample-page/ -H 'Host: yourdomain.com' -H 'Accept-Encoding: gzip' | grep X-Cache
# X-Cache-Status: MISS
Затем протестируйте через WordPress:
- Отредактируйте любой опубликованный пост
- Внесите изменения и нажмите Обновить
- Плагин автоматически очищает кэш
- Перейдите на страницу — она должна показать свежий контент
Как это работает
flowchart TD
subgraph WordPress["<b>WordPress</b>"]
A[📝 Пост обновлен] --> B["🔌 Плагин Proxy Cache Purge"]
B --> C["PURGE http://127.0.0.1/post-slug/*<br/>Host: yourdomain.com"]
end
C --> D
subgraph NGINX["<b>NGINX (ea-nginx)</b>"]
D["🔒 proxy_cache_purge PURGE from 127.0.0.1"] --> E["🗑️ Модуль ngx_cache_purge"]
E --> F["✓ Wildcard соответствует всем вариантам<br/>(gzip, brotli, plain)"]
F --> G["✓ Удаляет из дискового кэша"]
G --> H["✅ Возвращает 'Успешная очистка'"]
end
style WordPress fill:#4a90d9,stroke:#2d5986,color:#fff
style NGINX fill:#009639,stroke:#006325,color:#fff
style A fill:#5ba0e0
style B fill:#5ba0e0
style C fill:#5ba0e0
style D fill:#00a844
style E fill:#00a844
style F fill:#00a844
style G fill:#00a844
style H fill:#00a844
Что происходит
- Вы обновляете пост в WordPress
- Плагин отправляет запрос
PURGEна localhost - Модуль NGINX удаляет только этот URL из кэша
- Следующий посетитель получает свежий контент, остальной кэш остается нетронутым
Почему это быстро
- Нет полной очистки кэша — другие страницы остаются закэшированными
- Только локальные запросы — без сетевой задержки
- Поддержка wildcard — очищает все варианты кодирования сразу
Расширенные возможности: Сокращение вариантов кэша
Дополнительная оптимизация
Рекомендуется для сайтов с высоким трафиком, чтобы максимизировать коэффициенты попадания в кэш.
Заголовок Vary: Accept-Encoding заставляет NGINX создавать отдельные записи кэша для различных комбинаций
Accept-Encoding. Браузеры отправляют их в различных порядках, создавая избыток кэша:
| Исходный Accept-Encoding | Проблема |
|---|---|
gzip, br, deflate |
Отдельная запись кэша |
br, gzip |
Еще одна отдельная запись |
gzip, deflate |
Еще одна запись |
Решение: Нормализация заголовков
Модуль compression-normalize нормализует заголовки до согласованных значений:
dnf -y install ea-nginx-compression-normalize
Создайте /etc/nginx/conf.d/compression-normalize.conf:
# Нормализуйте Accept-Encoding для уменьшения вариантов кэша
# Приоритетный порядок: предпочтение brotli, затем gzip
compression_normalize_accept_encoding br,gzip br gzip;
Результат: Сотни возможных вариантов → всего 3 (br,gzip, br, gzip).
Безопасность
Доступ только с localhost
proxy_cache_purge PURGE from 127.0.0.1;
Внешние запросы PURGE обрабатываются как обычные запросы, а не как очистки.
Изоляция пользователей
У каждого пользователя cPanel есть своя зона кэша. Пользователь alice не может очистить кэш пользователя bob — даже с одинаковыми URL путями.
Устранение неполадок
Кэш не очищается
- Проверьте настройку плагина:
- Перейдите в Настройки → Proxy Cache Purge
-
Убедитесь, что Пользовательский IP установлен на
127.0.0.1 -
Проверьте настройку кэш-бэкенда:
- Перейдите в Proxy Cache Purge → Настройки и убедитесь, что Кэш-бэкенд установлен на NGINX
-
Или проверьте, что
wp-config.phpсодержитdefine( 'VHP_PURGE_BACKEND', 'nginx' ); -
Проверьте, что конфигурация NGINX загружена:
nginx -T | grep cache_purge
412 Precondition Failed
Это означает, что URL не был в кэше. Это не ошибка — просто нечего очищать.
Модуль не загружается
# Проверьте, установлен ли
rpm -q ea-nginx-cache-purge
# Проверьте файл модуля
ls -la /etc/nginx/modules/ngx_http_cache_purge_module.so
Связанные
-
Репозиторий cPanel EA4
Полное руководство по настройке модулей ea-nginx для cPanel
-
Модуль cache-purge
Полная справка по директивам и продвинутому использованию
-
Плагин Proxy Cache Purge
Официальная страница плагина WordPress