Como Limpar o Cache do Nginx?

Publicado 27 de agosto de 2024

Problema: Acúmulo de Cache no Nginx

O Nginx, um servidor web e proxy reverso popular, usa cache para melhorar o desempenho. Com o tempo, esse cache pode acumular dados antigos ou desnecessários. Esse acúmulo pode causar tempos de resposta mais lentos, maior uso de disco e possivelmente servir conteúdo desatualizado aos usuários. Limpar o cache do Nginx regularmente é importante para manter um bom desempenho do servidor e fornecer informações atualizadas.

Solução: Métodos para Limpar o Cache do Nginx

Excluindo Manualmente os Arquivos de Cache do Diretório de Cache

Para limpar o cache do Nginx manualmente, localize o diretório de cache no arquivo de configuração do Nginx. Use comandos do terminal para excluir os arquivos de cache. Por exemplo, use "rm -rf /caminho/para/cache/*" para remover todos os arquivos na pasta de cache. Pare o Nginx antes de limpar o cache para evitar problemas.

Reiniciando o Servidor Nginx

Reiniciar o servidor Nginx limpa o cache. No Linux, use "sudo systemctl restart nginx". Para macOS, use "sudo nginx -s reload". No Windows, reinicie o Nginx através do aplicativo Serviços. Este método limpa todo o conteúdo em cache, mas pode causar tempo de inatividade do site.

Usando Opções de Configuração do Nginx

Usando a Diretiva proxy_cache_bypass

A diretiva proxy_cache_bypass permite que você ignore o cache para solicitações específicas. Adicione a diretiva ao seu arquivo de configuração do Nginx. Por exemplo, adicione "proxy_cache_bypass $http_cache_control;" para ignorar o cache quando um cabeçalho específico estiver na solicitação.

Implementando o Módulo Cache Purge

O módulo Nginx Cache Purge permite que você limpe URLs específicas do cache. Instale o módulo e configure-o no seu arquivo de configuração do Nginx. Adicione um bloco de localização para definir como lidar com solicitações de limpeza. Este método oferece mais controle, mas requer configuração adicional.

Técnicas Avançadas para Limpar o Cache do Nginx

Automatizando a Limpeza de Cache com Scripts Shell

Para automatizar a limpeza do cache, crie um script shell. Aqui está um exemplo:

#!/bin/bash
rm -rf /caminho/para/nginx/cache/*
nginx -s reload

Salve este script com uma extensão .sh e torne-o executável usando o comando chmod.

Para agendar tarefas de limpeza de cache, use o agendador de tarefas cron. Abra o arquivo crontab com:

crontab -e

Adicione uma linha para executar seu script em horários definidos. Por exemplo, para limpar o cache diariamente à meia-noite:

0 0 * * * /caminho/para/seu/script.sh

Implementando Cabeçalhos de Controle de Cache

Os cabeçalhos Cache-Control ajudam a gerenciar como o conteúdo é armazenado em cache. Adicione esses cabeçalhos na sua configuração do Nginx:

location / {
    add_header Cache-Control "public, max-age=3600";
}

Este exemplo define o conteúdo para ser armazenado em cache publicamente por uma hora.

Outras diretivas úteis de Cache-Control incluem:

  • no-cache: Requer validação antes de usar o conteúdo em cache
  • no-store: Impede o armazenamento em cache de informações sensíveis
  • must-revalidate: Verifica se o conteúdo em cache ainda é válido antes do uso

Ajuste esses cabeçalhos de acordo com suas necessidades de cache.