Como configurar o cache Nginx FastCGI no Ubuntu

Nginx FastCGI Cache aumenta o desempenho do seu site reduzindo a carga no servidor Ubuntu. É especialmente eficaz para conteúdo dinâmico, permitindo que o Nginx forneça conteúdo em cache diretamente, sem usar processadores PHP. Isso acelera o tempo de resposta e reduz o uso de recursos. Aqui estão os principais recursos e benefícios do Nginx FastCGI Cache para sua infraestrutura web:

  • Entrega eficiente de conteúdo: Nginx FastCGI Cache armazena saída de conteúdo dinâmico, permitindo acesso e distribuição mais rápidos.
  • Carga reduzida do servidor: Servir conteúdo em cache minimiza o número de chamadas PHP, aliviando a carga do servidor.
  • Escalabilidade: Nginx FastCGI Cache ajuda a gerenciar o aumento do tráfego sem comprometer a velocidade à medida que seu site cresce.
  • Cache personalizável: Esta opção oferece flexibilidade na configuração de expiração, desvio e condições de atualização do cache para atender às suas necessidades.
  • Experiência do usuário aprimorada: Tempos de carregamento mais rápidos do site melhoram a experiência do usuário, impactando positivamente a retenção de visitantes e as classificações de SEO.
  • Otimização de recursos: Otimiza a utilização dos recursos do servidor, levando a um tratamento mais eficiente de solicitações simultâneas.
  • Depuração fácil: Fornece mecanismos simples para depurar e validar conteúdo em cache, garantindo uma operação tranquila.
  • Compatibilidade: Funciona perfeitamente com plataformas CMS populares, melhorando seu desempenho sem configuração extensa.

À medida que avançamos nas instruções técnicas, lembre-se de que implementar o Nginx FastCGI Cache é uma forma estratégica de melhorar a eficiência do seu site e a satisfação do usuário. Vamos começar a melhorar o desempenho do seu site com Nginx FastCGI Cache.

Configurar cache Nginx FastCGI

Edite o arquivo de configuração Nginx para FastCGI Cache

Abra o arquivo de configuração

Primeiro você precisa abrir o nginx.conf arquivo. Usaremos o editor de texto nano, mas você pode usar qualquer editor de texto com o qual se sinta confortável. Digite este comando:

sudo nano /etc/nginx/nginx.conf

Configurar parâmetros FastCGI

Dentro do arquivo, localize o bloco HTTP e adicione as seguintes linhas:

fastcgi_cache_path /var/nginx/fastcgi_cache levels=1:2 keys_zone=fcgicache:150m max_size=20g inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

Após inserir as linhas, pressione CTRL + O, tipo Ye, em seguida, pressione CTRL + X sair.

Entenda os parâmetros FastCGI

  • fastcgi_cache_path: Este parâmetro define o local para armazenar o cache FastCGI (/var/nginx/fastcgi_cache). É essencial porque determina onde o conteúdo em cache residirá.
  • levels=1:2: isso cria uma hierarquia de diretórios de dois níveis no local do cache. Esse design ajuda a distribuir arquivos em dois diretórios, o que, por sua vez, reduz o risco de gargalos de E/S de disco.
  • keys_zone: Especifica o nome da zona de memória compartilhada (fcgicache) e seu tamanho (150M). A zona de memória compartilhada é crucial para armazenar chaves de cache e metadados.
  • max_size: Isso define o tamanho máximo do cache (neste exemplo, 20GB). Quando esse limite for atingido, os arquivos mais antigos serão removidos para liberar espaço para os novos.
  • inactive: especifica o período após o qual os dados não acessados ​​serão removidos do cache. Neste exemplo, está definido para 60 minutos.
  • use_temp_path: Definir isso como off instrui o Nginx a gravar arquivos diretamente na pasta de cache especificada, ignorando o uso de uma área de armazenamento temporário.
  • fastcgi_cache_key: é usado para definir a chave para pesquisa de cache. O Nginx cria um hash MD5 dessa chave para usar como nome dos arquivos de cache.

Configure o bloco de servidor Nginx para cache FastCGI

Editar arquivo de bloco de servidor

Em seguida, você precisa editar o arquivo de bloco do servidor. Para este exemplo, assumiremos que o nome do arquivo é example.com.conf. Abra-o com o seguinte comando:

sudo nano /etc/nginx/sites-available/example.com.conf

Insira diretivas de cache FastCGI

Supondo que você tenha o LEMP instalado, insira as seguintes linhas dentro do bloco de localização dos arquivos PHP:

fastcgi_cache fcgicache;
fastcgi_cache_valid 200 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;
add_header X-FastCGI-Cache $upstream_cache_status;

Entenda as diretivas de cache FastCGI

  • fastcgi_cache: ativa o cache e especifica a zona de memória compartilhada definida anteriormente.
  • fastcgi_cache_valid: define a duração do cache para códigos de status HTTP específicos.
  • fastcgi_cache_use_stale: define condições sob as quais o Nginx pode usar uma resposta obsoleta em cache.
  • fastcgi_cache_min_uses: especifica com que frequência uma resposta deve ser solicitada antes de ser armazenada em cache.
  • fastcgi_cache_lock: garante que apenas uma solicitação por vez preencha um novo elemento de cache, evitando uma 'debandada de cache'.
  • add_header: Adiciona um cabeçalho personalizado (X-FastCGI-Cache) à resposta HTTP, indicando se a resposta foi veiculada pelo cache.

Configurar a limpeza de cache FastCGI no Nginx

Configurando a limpeza de cache

A limpeza do cache permite remover o conteúdo do cache antes que ele expire. Para configurar a limpeza de cache, crie uma diretiva de limpeza de cache inserindo as seguintes linhas no arquivo de bloco do servidor:

location ~ /purge(/.*) {
    # Uncomment the following two lines to allow purge only from the webserver
    allow 127.0.0.1;
    deny all;
    fastcgi_cache_purge fcgicache "$scheme$request_method$host$1";
}

Imprensa CTRL + O, tipo Ye, em seguida, pressione CTRL + X para sair do editor de texto.

Abordagem alternativa para problemas de limpeza de cache

Se você enfrentar problemas com a limpeza do cache, poderá ajustar o tempo de expiração do cache. Para sites de tráfego médio a alto, definir uma taxa de expiração mais baixa, como 2 horas de inatividade e 4 horas para expiração geral, costuma ser mais eficiente.

Teste e reinicie o servidor Nginx

Teste a configuração

É essencial validar a configuração do Nginx para evitar erros de sintaxe ou configurações incorretas. Use o seguinte comando:

sudo nginx -t

Você deverá ver a seguinte saída se tudo estiver correto:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reinicie o servidor Nginx

Por fim, reinicie o servidor Nginx para aplicar as alterações feitas:

sudo systemctl restart nginx

Crie e otimize o diretório de cache Nginx FastCGI

Criar diretório de cache FastCGI

Vamos agora criar o diretório onde o Nginx armazenará os arquivos de cache. Este caminho foi especificado anteriormente no nginx.conf arquivo:

sudo mkdir -p /var/nginx/fastcgi_cache

Otimize o diretório de cache com tmpfs (opcional)

Se o seu sistema tiver RAM suficiente, você pode optar por usar tmpfs para armazenar o cache na memória. Isso pode resultar em tempos de acesso mais rápidos em comparação ao armazenamento em disco. No entanto, tenha cuidado, pois o armazenamento na RAM pode consumir recursos de memória significativos. Veja como você pode montar o diretório de cache como tmpfs:

Editar /etc/fstab arquivo:

sudo nano /etc/fstab

Adicione a seguinte linha no final do arquivo:

tmpfs   /var/nginx/fastcgi_cache   tmpfs   defaults,size=512M   0 0

Isso aloca 512 MB de RAM para o cache. Você pode ajustar o tamanho de acordo com os recursos do sistema.

Monte o tmpfs:

sudo mount -a

Esta configuração garante que o cache FastCGI seja armazenado na memória, oferecendo desempenho mais rápido em detrimento da utilização de RAM.

Validar a funcionalidade de cache Nginx FastCGI

Teste o cache FastCGI com curl

Você pode validar se o FastCGI Cache está funcionando corretamente usando o curl comando. Dependendo das configurações de cache, talvez seja necessário executar o comando várias vezes antes de ver uma ocorrência no cache:

curl -I http://www.your-domain.com

Se você não tem curl instalado, você pode instalá-lo com:

sudo apt install curl -y

Na saída, procure o X-FastCGI-Cache: HIT cabeçalho:

~$ curl -I https://www.example.com/
HTTP/1.1 200 OK
...
X-FastCGI-Cache: HIT
...

Isso indica que a solicitação foi atendida pelo cache.

Configurar exclusões de cache

Elementos do site, como páginas de administração do WordPress, seções de comentários e mapas de sites, não devem ser armazenados em cache. Para configurar o Nginx para não armazená-los em cache, adicione o seguinte código acima do location (~\.php$) linha no arquivo de bloco do seu servidor:

# Cache by default
set $skip_cache 0;

# Don't cache URIs containing the following
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-..php|^/feed/|/tag/./feed/|index.php|/.sitemap..(xml|xsl)") {
    set $skip_cache 1;
}

# Don't cache for logged-in users or comment authors
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
    set $skip_cache 1;
}

# POST requests and URIs with a query string should bypass the cache
if ($request_method = POST) {
    set $skip_cache 1;
}

if ($query_string != "") {
    set $skip_cache 1;
}

Depurando exclusões de cache (opcional)

Se quiser adicionar notas para fins de depuração, você pode incluir uma nota personalizada em cada set $skip_cache 1; declaração como esta:

set $skip_reason "your custom note";

Isso pode ser útil para entender por que determinado conteúdo não está sendo armazenado em cache durante a solução de problemas.

Depois de fazer essas configurações, teste a configuração e reinicie o Nginx:

sudo nginx -t
sudo systemctl restart nginx

Melhores práticas e considerações com cache Nginx FastCGI

Embora o cache FastCGI possa oferecer benefícios significativos de desempenho, é essencial garantir que a configuração seja otimizada para seu caso de uso e recursos de servidor específicos:

  • Avalie a quantidade de RAM disponível antes de optar por tmpfs para cache. Certifique-se de que seu servidor tenha memória suficiente para outros processos críticos.
  • Personalize as exclusões de cache de acordo com seu aplicativo. Os exemplos fornecidos são especificamente para WordPress, mas você pode precisar de exclusões diferentes para outros tipos de aplicativos.
  • Monitore regularmente o uso e o desempenho do cache. Se o cache consumir muito espaço em disco ou não melhorar o desempenho conforme o esperado, considere ajustar o caminho, o tamanho ou as configurações do cache adequadamente.

Conclusão

Bem, aí está! Seguimos as etapas para instalar o Nginx FastCGI Cache em seu servidor Ubuntu, oferecendo um aumento no desempenho do seu site ao lidar com conteúdo dinâmico com eficiência. Lembre-se de que manter as configurações de cache adequadas às necessidades do seu site é fundamental para maximizar os benefícios. Não se intimide em ajustar as configurações para encontrar esse ponto ideal. Quer você seja um profissional experiente ou novo no gerenciamento de servidores, esperamos que este guia tenha sido um companheiro útil para otimizar sua presença na web. Mantenha a simplicidade, seja consistente e tenha uma experiência de site mais rápida e tranquila para você e seus visitantes!

Joshua James
Me siga
Últimos posts por Joshua James (exibir todos)

Deixe um comentário