Pular para conteúdo

Purgação de Cache do WordPress no cPanel EA4

Invalidar o cache instantaneamente e automaticamente para WordPress—sem limpar todo o seu cache.

🎉 Acesso Gratuito - Tempo Limitado!

Todos os módulos EA4 estão atualmente gratuitos — sem necessidade de assinatura! Saiba mais


  • Invalidation Automática


    O cache é purgado automaticamente quando você edita posts, páginas ou comentários—sem necessidade de intervenção manual

  • Precisão Cirúrgica


    Apenas a página alterada é purgada—todo o seu site permanece em cache e super rápido

  • Seguro para Multi-Tenant


    O cache de cada usuário do cPanel é isolado—os usuários não podem purgar o conteúdo uns dos outros

  • Zero Codificação Necessária


    Funciona imediatamente com o plugin Proxy Cache Purge do WordPress


Configuração em 5 Minutos

Siga estas etapas para habilitar a purgação inteligente de cache no seu servidor cPanel.


Passo 1: Instalar o Módulo de Purgação de Cache

# Instalar o repositório GetPageSpeed (ativa automaticamente o repositório ea4 em servidores cPanel)
dnf -y install https://extras.getpagespeed.com/release-latest.rpm

# Instalar o módulo de purgação de cache
dnf -y install ea-nginx-cache-purge

Passo 2: Configurar o NGINX

Você pode habilitar a purgação de cache globalmente para todos os usuários ou por usuário.

Crie /etc/nginx/conf.d/server-includes/cache-purge.conf:

# Habilitar o método PURGE para purgação de cache (todos os usuários)
proxy_cache_purge PURGE from 127.0.0.1;

Este arquivo é incluído automaticamente em todos os blocos de servidor dos usuários do cPanel.

Para o usuário username, crie /etc/nginx/conf.d/users/username/cache-purge.conf:

# Habilitar o método PURGE para purgação de cache
proxy_cache_purge PURGE from 127.0.0.1;

Após criar a configuração, recarregue o NGINX:

nginx -t && systemctl reload nginx

Passo 3: Instalar o Plugin Proxy Cache Purge

  1. Vá para Plugins → Adicionar Novo
  2. Pesquise por "Proxy Cache Purge" (slug: varnish-http-purge)
  3. Clique em Instalar Agora, depois em Ativar
wp plugin install varnish-http-purge --activate

Passo 4: Configurar o Proxy Cache Purge

No admin do WordPress:

  1. Vá para Configurações → Proxy Cache Purge
  2. Defina "Definir IP Personalizado" para: 127.0.0.1
  3. Clique em Salvar Configurações

Configuração Crítica

O plugin deve enviar solicitações PURGE para 127.0.0.1 (localhost), não para seu IP público ou domínio.


Passo 5: Configurar o Backend de Cache do NGINX

A partir da versão Proxy Cache Purge 5.9.0, o plugin suporta nativamente o formato de purgação por wildcard do NGINX. Configure-o para usar o backend do NGINX:

  1. Vá para Proxy Cache Purge → Configurações
  2. Em Backend de Cache, selecione NGINX
  3. Clique em Salvar Configurações

Adicione ao seu wp-config.php:

define( 'VHP_PURGE_BACKEND', 'nginx' );

Isso garante que, quando uma página é purgada, todas as variantes em cache (gzip, brotli, descompactadas) são limpas.

Legado: Versão do Plugin < 5.9.0

Se você estiver executando o Proxy Cache Purge anterior a 5.9.0, crie wp-content/mu-plugins/nginx-cache-purge-fix.php:

<?php
/**
 * Nome do Plugin: NGINX Cache Purge Fix
 * Descrição: Anexa wildcard para URLs de purgação para compatibilidade com o cabeçalho Vary
 */
add_filter("vhp_purgeme_path", function($purgeme, $schema, $host, $path, $pregex, $p) {
    if (empty($pregex)) {
        $purgeme .= "*";
    }
    return $purgeme;
}, 10, 6);

Teste a Configuração

# 1. Cache uma página (primeira solicitação = MISS, segunda = 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 usando o método PURGE com wildcard
curl -sX PURGE 'http://127.0.0.1/sample-page/*' -H 'Host: yourdomain.com'
# <h1>Purgar bem-sucedido</h1>

# 3. Verifique se o cache foi limpo
curl -sI http://127.0.0.1/sample-page/ -H 'Host: yourdomain.com' -H 'Accept-Encoding: gzip' | grep X-Cache
# X-Cache-Status: MISS

Depois, teste via WordPress:

  1. Edite qualquer post publicado
  2. Faça uma alteração e clique em Atualizar
  3. O plugin purga automaticamente o cache
  4. Visite a página—ela deve mostrar conteúdo novo

Como Funciona

flowchart TD
    subgraph WordPress["<b>WordPress</b>"]
        A[📝 Post Atualizado] --> 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["✓ Wildcard combina com todas as variantes<br/>(gzip, brotli, plain)"]
        F --> G["✓ Deleta do cache em disco"]
        G --> H["✅ Retorna 'Purgar bem-sucedido'"]
    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

O Que Acontece

  1. Você atualiza um post no WordPress
  2. O plugin envia uma solicitação PURGE para localhost
  3. O módulo do NGINX remove apenas aquela URL do cache
  4. O próximo visitante recebe conteúdo novo, o restante do cache permanece intacto

Por Que É Rápido

  • Sem flush completo do cache — outras páginas permanecem em cache
  • Solicitações locais apenas — sem latência de rede
  • Suporte a wildcard — limpa todas as variantes de codificação de uma vez

Avançado: Reduzir Variantes de Cache

Otimização Opcional

Recomendado para sites de alto tráfego para maximizar as taxas de acerto de cache.

O cabeçalho Vary: Accept-Encoding faz com que o NGINX crie entradas de cache separadas para diferentes combinações de Accept-Encoding. Os navegadores enviam esses em várias ordens, criando inchaço de cache:

Accept-Encoding Original Problema
gzip, br, deflate Entrada de cache separada
br, gzip Outra entrada separada
gzip, deflate Mais uma entrada

A Solução: Normalizar Cabeçalhos

O módulo compression-normalize normaliza cabeçalhos para valores consistentes:

dnf -y install ea-nginx-compression-normalize

Crie /etc/nginx/conf.d/compression-normalize.conf:

# Normalizar Accept-Encoding para reduzir variantes de cache
# Ordem de prioridade: preferir brotli, depois gzip
compression_normalize_accept_encoding br,gzip br gzip;

Resultado: Centenas de variantes possíveis → apenas 3 (br,gzip, br, gzip).


Segurança

Acesso Apenas Localhost

proxy_cache_purge PURGE from 127.0.0.1;

Solicitações PURGE externas são processadas como solicitações normais, não purgas.

Isolamento de Usuário

Cada usuário do cPanel tem sua própria zona de cache. O usuário alice não pode purgar o cache do usuário bob—mesmo com os mesmos caminhos de URL.


Solução de Problemas

Cache Não Está Sendo Purgado
  1. Verifique a configuração do plugin:
  2. Vá para Configurações → Proxy Cache Purge
  3. Certifique-se de que IP Personalizado está definido como 127.0.0.1

  4. Verifique a configuração do Backend de Cache:

  5. Vá para Proxy Cache Purge → Configurações e verifique se Backend de Cache está definido como NGINX
  6. Ou verifique se wp-config.php contém define( 'VHP_PURGE_BACKEND', 'nginx' );

  7. Verifique se a configuração do NGINX está carregada:

    nginx -T | grep cache_purge
    

412 Precondition Failed

Isso significa que a URL não estava no cache. Não é um erro—apenas não há nada para purgar.

Módulo Não Carregando
# Verifique se está instalado
rpm -q ea-nginx-cache-purge

# Verifique o arquivo do módulo
ls -la /etc/nginx/modules/ngx_http_cache_purge_module.so

Relacionados

  • Repositório cPanel EA4


    Guia completo de configuração para os módulos ea-nginx do cPanel

    Saiba mais

  • Módulo cache-purge


    Referência completa de diretivas e uso avançado

    Documentação

  • Plugin Proxy Cache Purge


    Página oficial do plugin do WordPress

    WordPress.org