🎉 USE O CUPOM FIM.DE.SEMANA.FULL | 20% OFF acima de R$ 100,00

Como corrigir o erro Rocket-Nginx Not Working no WordPress

Time Full Services Time Full Services
Tipo Performance & Velocidade
Nome do erro Rocket-Nginx nao esta servindo o cache EN: Rocket-Nginx Not Working
Severidade Atenção
Descrição O erro Rocket-Nginx not working acontece quando o Nginx deixa de servir as páginas em cache do WP Rocket direto do disco, geralmente porque o include do default.conf não esta no server block, o rocket-parser.php não foi rodado após editar o .ini, ou alguma condicao de bypass (query string, cookie, requisicao POST) impede o HIT.

O que é Rocket-Nginx Not Working?

O Rocket-Nginx not working e a falha em que o complemento Rocket-Nginx para de entregar o HTML em cache do WP Rocket diretamente pelo servidor web. O Rocket-Nginx e uma configuração de Nginx, mantida pela SatelliteWP, que serve o arquivo estático gerado pelo WP Rocket antes mesmo do PHP ser carregado. Quando funciona, o Nginx responde com o cabeçalho X-Rocket-Nginx-Serving-Static igual a HIT e a página e devolvida sem passar pelo WordPress. Quando para de funcionar, toda requisicao volta a acionar o PHP e o ganho de velocidade do cache servido pelo servidor desaparece.

Na prática o sintoma e o cabeçalho X-Rocket-Nginx-Serving-Static respondendo MISS ou BYPASS em páginas que deveriam estar em cache, ou a ausencia total dos cabeçalhos X-Rocket-Nginx. Segundo a documentação oficial do projeto, o fluxo correto exige renomear o rocket-nginx.ini.disabled para rocket-nginx.ini, rodar o rocket-parser.php para gerar o default.conf, incluir esse arquivo no server block do Nginx e recarregar o serviço. Pular qualquer uma dessas etapas, ou esquecer de regenerar a configuração após editar o .ini, derruba a entrega do cache pelo Nginx.

Como identificar

  • O cabeçalho de resposta ‘X-Rocket-Nginx-Serving-Static: MISS’ ou ‘X-Rocket-Nginx-Serving-Static: BYPASS’ aparece em páginas que já deveriam estar em cache.
  • Nenhum cabeçalho ‘X-Rocket-Nginx-…’ aparece na resposta, indicando que o include do default.conf não esta ativo no server block.
  • O comando ‘nginx -t’ retorna erro de sintaxe apontando para a linha do include do Rocket-Nginx, e o reload falha.
  • O cabeçalho ‘X-Rocket-Nginx-Reason’ traz um motivo como cookie, query string ou método POST, mostrando que a requisicao caiu numa regra de bypass.
  • O site continua lento mesmo com o cache do WP Rocket gerado, porque toda requisicao volta a carregar o PHP em vez de servir o arquivo estático.
Antes de começar: Editar a configuração do Nginx em producao pode derrubar o site se a sintaxe ficar invalida. Faça um backup do arquivo de configuração do servidor antes de alterar, rode sempre o nginx -t antes do reload, e de preferencia teste a mudanca primeiro em um ambiente de staging para poder reverter sem afetar os visitantes.

Como prevenir

  • Versione o rocket-nginx.ini junto com a configuração do servidor e rode o rocket-parser.php no deploy, para que o default.conf nunca fique defasado em relacao ao .ini.
  • Após qualquer mudanca no Nginx, padronize a sequencia nginx -t seguido de service nginx reload, evitando aplicar configuração com sintaxe invalida.
  • Monitore o cabeçalho X-Rocket-Nginx-Serving-Static em páginas chave depois de cada deploy ou atualização do WP Rocket, para detectar uma queda de HIT para MISS logo que acontece.
  • Documente o caminho real do cache do WP Rocket (wp-content/cache/wp-rocket) e mantenha ele igual ao configurado no rocket-nginx.ini, para não gerar MISS por divergencia de diretório.

Causa

  • O arquivo default.conf gerado pelo rocket-parser.php não foi incluido no server block do Nginx com a diretiva 'include rocket-nginx/conf.d/default.conf;', entao o Nginx nunca tenta servir o cache antes do PHP.
  • O rocket-nginx.ini ainda esta como rocket-nginx.ini.disabled, ou foi editado mas o rocket-parser.php não foi executado de novo, deixando o default.conf desatualizado ou inexistente.
  • A requisicao casa com uma condicao de bypass documentada pelo Rocket-Nginx (método POST, query string na URL, presenca do arquivo .maintenance ou um cookie de exclusão), fazendo o cabeçalho X-Rocket-Nginx-Serving-Static responder BYPASS.
  • O caminho de cache configurado no rocket-nginx.ini não bate com o diretório real onde o WP Rocket grava o cache (wp-content/cache/wp-rocket), entao o Nginx procura o arquivo estático, não encontra e responde MISS.
  • O nginx -t passou mas o serviço não foi recarregado com 'service nginx reload' após a mudanca, entao a configuração nova com o include do Rocket-Nginx ainda não esta em vigor no processo do Nginx.

Como resolver

  1. Confirme o cabeçalho que o Nginx esta devolvendo: Antes de mexer em qualquer arquivo, descubra em que estado o Rocket-Nginx esta. Inspecione os cabeçalhos de resposta de uma página pública que deveria estar em cache e leia o valor de X-Rocket-Nginx-Serving-Static. HIT significa que esta servindo do disco, MISS que não achou o arquivo, BYPASS que uma regra excluiu a página, e a ausencia total do cabeçalho indica que o include nem esta ativo.
    curl -I https://seusite.com.br/
    Procure na resposta a linha X-Rocket-Nginx-Serving-Static
    Leia também X-Rocket-Nginx-Reason se o valor for MISS ou BYPASS
  2. Gere a configuração com o rocket-parser.php: Na pasta do Rocket-Nginx, garanta que o arquivo de configuração esteja ativo e regenere o default.conf. O rocket-nginx.ini.disabled precisa ser copiado para rocket-nginx.ini, e o parser precisa rodar para transformar o .ini no arquivo .conf que o Nginx vai incluir. Sempre que editar o .ini, rode o parser de novo.
    cp rocket-nginx.ini.disabled rocket-nginx.ini
    php rocket-parser.php
    Confirme que o arquivo rocket-nginx/conf.d/default.conf foi criado
  3. Inclua o default.conf no server block do Nginx: Edite o arquivo de configuração do site no Nginx e adicione a diretiva include dentro do bloco server, apontando para o default.conf gerado pelo parser. Sem esse include, o Nginx nunca executa as regras do Rocket-Nginx e nenhum cabeçalho X-Rocket-Nginx aparece na resposta.
    Abra o arquivo do site em /etc/nginx/sites-available/
  4. Dentro do bloco server { ... } adicione:
    include rocket-nginx/conf.d/default.conf;
  5. Teste a sintaxe e recarregue o Nginx: Valide a configuração com nginx -t antes de aplicar. Se o teste apontar erro na linha do include, corrija o caminho do default.conf. Com o teste OK, recarregue o serviço para que a configuração nova entre em vigor sem derrubar as conexoes ativas.
    nginx -t
    service nginx reload
  6. Valide o HIT e investigue bypass residual: Repita a inspecao do passo 1 numa página em cache. O esperado agora e X-Rocket-Nginx-Serving-Static igual a HIT. Se ainda vier MISS, confira se o caminho de cache no rocket-nginx.ini bate com wp-content/cache/wp-rocket. Se vier BYPASS, leia o X-Rocket-Nginx-Reason: ele aponta a regra que excluiu a página, como query string, cookie ou método POST.
    curl -I https://seusite.com.br/
    Confirme X-Rocket-Nginx-Serving-Static: HIT
    Se MISS ou BYPASS, leia X-Rocket-Nginx-Reason e ajuste o caminho de cache ou a regra no rocket-nginx.ini
NGINX
# /etc/nginx/sites-available/seusite.conf
server {
    listen 443 ssl;
    server_name seusite.com.br;
    root /var/www/seusite/htdocs;

    # Inclui as regras geradas pelo rocket-parser.php.
    # Sem este include o Nginx nunca serve o cache do WP Rocket.
    include rocket-nginx/conf.d/default.conf;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php-fpm.sock;
    }
}

Perguntas frequentes

O que significa X-Rocket-Nginx-Serving-Static igual a MISS
MISS significa que o Nginx tentou servir a página em cache pelo disco mas não encontrou o arquivo estático correspondente. Em geral o cache ainda não foi gerado para aquela URL ou o caminho de cache configurado no rocket-nginx.ini não bate com a pasta wp-content/cache/wp-rocket onde o WP Rocket grava os arquivos.
Por que nenhum cabeçalho X-Rocket-Nginx aparece na resposta
A ausencia total dos cabeçalhos X-Rocket-Nginx indica que o include do default.conf não esta ativo no server block do Nginx. Adicione a diretiva include rocket-nginx/conf.d/default.conf dentro do bloco server, valide com nginx -t e recarregue o serviço para que as regras passem a rodar.
Qual a diferenca entre MISS e BYPASS no Rocket-Nginx
MISS quer dizer que o arquivo de cache não foi encontrado para servir. BYPASS quer dizer que a requisicao casou com uma regra de exclusão, como método POST, query string na URL, arquivo .maintenance presente ou um cookie específico. O cabeçalho X-Rocket-Nginx-Reason indica qual condicao causou o BYPASS.
Preciso rodar o rocket-parser.php toda vez que mudo a configuração
Sim. O rocket-parser.php le o rocket-nginx.ini e gera o default.conf que o Nginx inclui. Se você editar o .ini e não rodar o parser de novo, o Nginx continua usando a configuração antiga e a mudanca não tem efeito. Rode o parser após cada alteração no .ini.
Como sei que o Rocket-Nginx voltou a funcionar
Inspecione os cabeçalhos de uma página em cache com curl -I na URL do site. Se X-Rocket-Nginx-Serving-Static responder HIT, o Nginx esta servindo o HTML do disco antes do PHP, que e o comportamento correto. HIT confirma que o include, o parser e o caminho de cache estão todos certos.
O Rocket-Nginx funciona em servidor Apache
Não. O Rocket-Nginx e uma configuração específica para o servidor web Nginx, que serve o arquivo estático antes do PHP por meio de regras no server block. Em Apache o WP Rocket usa as regras de cache no .htaccess, e o complemento Rocket-Nginx não se aplica.
Por que a página cai em BYPASS por causa de query string
Por padrão o Rocket-Nginx não serve do disco URLs com argumentos de query string, porque elas podem gerar conteúdo diferente a cada parametro. Quando isso acontece, o X-Rocket-Nginx-Reason aponta a query string como motivo. Ajuste as regras no rocket-nginx.ini e rode o parser se quiser tratar parametros especificos.
O include do Rocket-Nginx pode quebrar o site
Pode, se a sintaxe ou o caminho do default.conf estiverem errados, porque o Nginx falha ao carregar a configuração. Por isso rode sempre nginx -t antes de aplicar e mantenha um backup do arquivo de configuração do servidor para reverter caso o teste ou o reload acuse erro.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes