Purga de Caché de WordPress en cPanel EA4
Invalidación de caché instantánea y automática para WordPress—sin necesidad de limpiar toda tu caché.
🎉 Acceso Gratuito - ¡Tiempo Limitado!
¡Todos los módulos de EA4 son actualmente gratuitos — no se requiere suscripción! Aprende más
-
Invalidación Automática
La caché se purga automáticamente cuando editas publicaciones, páginas o comentarios—no se necesita intervención manual.
-
Precisión Quirúrgica
Solo se purga la página cambiada—tu sitio completo permanece en caché y a toda velocidad.
-
Seguro para Múltiples Inquilinos
La caché de cada usuario de cPanel está aislada—los usuarios no pueden purgar el contenido de otros.
-
Sin Necesidad de Codificación
Funciona directamente con el plugin de WordPress Proxy Cache Purge.
Configuración en 5 Minutos
Sigue estos pasos para habilitar la purga inteligente de caché en tu servidor cPanel.
Paso 1: Instalar el Módulo de Purga de Caché
# Instalar el repositorio de GetPageSpeed (habilita automáticamente el repositorio ea4 en servidores cPanel)
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
# Instalar el módulo de purga de caché
dnf -y install ea-nginx-cache-purge
Paso 2: Configurar NGINX
Puedes habilitar la purga de caché globalmente para todos los usuarios o por usuario.
Crea /etc/nginx/conf.d/server-includes/cache-purge.conf:
# Habilitar el método PURGE para la purga de caché (todos los usuarios)
proxy_cache_purge PURGE from 127.0.0.1;
Este archivo se incluye automáticamente en todos los bloques de servidor de usuarios de cPanel.
Para el usuario username, crea /etc/nginx/conf.d/users/username/cache-purge.conf:
# Habilitar el método PURGE para la purga de caché
proxy_cache_purge PURGE from 127.0.0.1;
Después de crear la configuración, recarga NGINX:
nginx -t && systemctl reload nginx
Paso 3: Instalar el Plugin Proxy Cache Purge
- Ve a Plugins → Añadir Nuevo
- Busca "Proxy Cache Purge" (slug:
varnish-http-purge) - Haz clic en Instalar Ahora, luego Activar
wp plugin install varnish-http-purge --activate
Paso 4: Configurar Proxy Cache Purge
En el admin de WordPress:
- Ve a Ajustes → Proxy Cache Purge
- Establece "Establecer IP Personalizada" a:
127.0.0.1 - Haz clic en Guardar Ajustes
Configuración Crítica
El plugin debe enviar solicitudes PURGE a 127.0.0.1 (localhost), no a tu IP pública o dominio.
Paso 5: Configurar el Backend de Caché de NGINX
A partir de Proxy Cache Purge 5.9.0, el plugin soporta nativamente el formato de purga con comodín de NGINX. Configúralo para usar el backend de NGINX:
- Ve a Proxy Cache Purge → Ajustes
- En Backend de Caché, selecciona NGINX
- Haz clic en Guardar Ajustes
Añade a tu wp-config.php:
define( 'VHP_PURGE_BACKEND', 'nginx' );
Esto asegura que cuando se purga una página, todas las variantes en caché (gzip, brotli, sin comprimir) se eliminan.
Legado: Versión del Plugin < 5.9.0
Si estás ejecutando Proxy Cache Purge anterior a 5.9.0, crea
wp-content/mu-plugins/nginx-cache-purge-fix.php:
<?php
/**
* Nombre del Plugin: NGINX Cache Purge Fix
* Descripción: Añade comodín a las URLs de purga para compatibilidad con el encabezado Vary
*/
add_filter("vhp_purgeme_path", function($purgeme, $schema, $host, $path, $pregex, $p) {
if (empty($pregex)) {
$purgeme .= "*";
}
return $purgeme;
}, 10, 6);
Prueba la Configuración
# 1. Caché de una página (primer request = MISS, segundo = 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. Purga usando el método PURGE con comodín
curl -sX PURGE 'http://127.0.0.1/sample-page/*' -H 'Host: yourdomain.com'
# <h1>Purge exitoso</h1>
# 3. Verifica que la caché se haya limpiado
curl -sI http://127.0.0.1/sample-page/ -H 'Host: yourdomain.com' -H 'Accept-Encoding: gzip' | grep X-Cache
# X-Cache-Status: MISS
Luego prueba a través de WordPress:
- Edita cualquier publicación publicada
- Haz un cambio y haz clic en Actualizar
- El plugin purga automáticamente la caché
- Visita la página—debería mostrar contenido fresco
Cómo Funciona
flowchart TD
subgraph WordPress["<b>WordPress</b>"]
A[📝 Publicación Actualizada] --> B["🔌 Plugin 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["🗑️ Módulo ngx_cache_purge"]
E --> F["✓ El comodín coincide con todas las variantes<br/>(gzip, brotli, plano)"]
F --> G["✓ Elimina del caché en disco"]
G --> H["✅ Devuelve 'Purge exitoso'"]
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
Qué Ocurre
- Actualizas una publicación en WordPress
- El plugin envía una solicitud
PURGEa localhost - El módulo de NGINX elimina solo esa URL de la caché
- El siguiente visitante obtiene contenido fresco, el resto de la caché permanece intacta
Por Qué Es Rápido
- Sin limpieza completa de caché — otras páginas permanecen en caché
- Solo solicitudes locales — sin latencia de red
- Soporte para comodines — elimina todas las variantes de codificación a la vez
Avanzado: Reducir Variantes de Caché
Optimización Opcional
Recomendado para sitios de alto tráfico para maximizar las tasas de aciertos de caché.
El encabezado Vary: Accept-Encoding hace que NGINX cree entradas de caché separadas para diferentes combinaciones de Accept-Encoding. Los navegadores envían estos en varios órdenes, creando un exceso de caché:
| Accept-Encoding Original | Problema |
|---|---|
gzip, br, deflate |
Entrada de caché separada |
br, gzip |
Otra entrada separada |
gzip, deflate |
Otra entrada más |
La Solución: Normalizar Encabezados
El módulo compression-normalize normaliza los encabezados a valores consistentes:
dnf -y install ea-nginx-compression-normalize
Crea /etc/nginx/conf.d/compression-normalize.conf:
# Normalizar Accept-Encoding para reducir variantes de caché
# Orden de prioridad: preferir brotli, luego gzip
compression_normalize_accept_encoding br,gzip br gzip;
Resultado: Cientos de posibles variantes → solo 3 (br,gzip, br, gzip).
Seguridad
Acceso Solo Localhost
proxy_cache_purge PURGE from 127.0.0.1;
Las solicitudes PURGE externas se procesan como solicitudes normales, no como purgas.
Aislamiento de Usuarios
Cada usuario de cPanel tiene su propia zona de caché. El usuario alice no puede purgar la caché del usuario bob, incluso con las mismas rutas de URL.
Solución de Problemas
La Caché No Se Está Purificando
- Verifica la configuración del plugin:
- Ve a Ajustes → Proxy Cache Purge
-
Asegúrate de que IP Personalizada esté configurada a
127.0.0.1 -
Verifica la configuración del Backend de Caché:
- Ve a Proxy Cache Purge → Ajustes y verifica que Backend de Caché esté configurado a NGINX
-
O verifica que
wp-config.phpcontengadefine( 'VHP_PURGE_BACKEND', 'nginx' ); -
Verifica que la configuración de NGINX esté cargada:
nginx -T | grep cache_purge
412 Precondition Failed
Esto significa que la URL no estaba en caché. No es un error—simplemente no hay nada que purgar.
Módulo No Cargando
# Verifica si está instalado
rpm -q ea-nginx-cache-purge
# Verifica el archivo del módulo
ls -la /etc/nginx/modules/ngx_http_cache_purge_module.so
Relacionado
-
Repositorio cPanel EA4
Guía completa de configuración para los módulos ea-nginx de cPanel
-
Módulo de purga de caché
Referencia completa de directivas y uso avanzado
-
Plugin Proxy Cache Purge
Página oficial del plugin de WordPress