Retrocesso na configuração do NGINX: a Serverion revive a arte perdida do ajuste de cache de proxy
Quer sites mais rápidos e menos carga no servidor? O cache proxy NGINX é a sua solução. Ao armazenar conteúdo solicitado com frequência, ele acelera a entrega e reduz a sobrecarga dos seus servidores de origem. Serverion compartilha dicas práticas para otimizar sua configuração de cache para melhor desempenho e confiabilidade.
Principais conclusões:
- Servir conteúdo obsoleto: Use respostas em cache durante o tempo de inatividade do servidor com
proxy_cache_uso_obsoleto. - Atualizações de segundo plano: Atualize as entradas de cache sem interromper o uso dos usuários
atualização_de_fundo_do_proxy_cache. - Prevenir sobrecargas: Evite sobrecarregar seu servidor de origem com
bloqueio_de_cache_proxy.
Exemplo de configuração:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; proxy_cache my_cache; proxy_cache_use_stale atualizando; proxy_cache_background_update ativado; proxy_cache_lock ativado; Essas configurações garantem respostas rápidas, uso eficiente de recursos e entrega confiável de conteúdo. Se você está executando um pequeno VPS ou um servidor de alto tráfego, essas técnicas podem ajudar você a aproveitar ao máximo o cache do proxy NGINX.
NGINX: Cache de conteúdo com proxy reverso (Super RÁPIDO …

Fundamentos do cache de proxy NGINX
As técnicas de ajuste de cache do Serverion baseiam-se nos princípios básicos do cache de proxy NGINX, que envolve o armazenamento e o fornecimento de cópias do conteúdo de origem. O sistema utiliza três componentes principais: o caminho do cache, uma zona de memória compartilhada e um gerenciador de cache que remove arquivos expirados ou menos usados recentemente (LRU) quando o cache atinge seu limite.
Operação de cache do proxy NGINX
Ao processar uma solicitação, o NGINX primeiro verifica sua zona de memória compartilhada para ver se o conteúdo solicitado já está armazenado em cache. Essa consulta na memória permite a rápida determinação de acertos ou erros de cache. Para referência, uma zona de chaves de 1 MB pode armazenar aproximadamente 8.000 chaves de cache[1].
Veja como funciona o processo de cache:
- O NGINX faz o hash da solicitação para criar uma chave de cache exclusiva.
- Ele verifica a zona de memória compartilhada para aquela chave.
- Se a chave for encontrada (acerto no cache), o conteúdo será servido diretamente do cache.
- Se a chave não for encontrada (falha de cache), o conteúdo será buscado no servidor de origem e armazenado no cache para uso futuro.
O Serverion otimiza o desempenho garantindo pesquisas de chaves eficientes e organizando o armazenamento em cache usando hierarquias de diretórios.
Elementos de cache principais
| Diretiva | Objetivo | Impacto |
|---|---|---|
caminho_do_cache_do_proxy | Especifica o local de armazenamento do cache | Determina onde e como o conteúdo é armazenado em cache |
cache de proxy | Ativa o cache para solicitações específicas | Habilita o cache dentro de um bloco de localização |
zona_de_chaves | Aloca memória compartilhada para chaves de cache | Permite pesquisas rápidas na memória |
inativo | Define por quanto tempo os itens não utilizados permanecem no cache | Controla o frescor do cache e o tempo de remoção |
Para maximizar o desempenho, use um sistema de dois níveis níveis hierarquia para evitar lentidão no sistema de arquivos. Além disso, defina use_temp_path=off para gravar arquivos em cache diretamente em seu local final, reduzindo a sobrecarga de E/S.
O NGINX respeita as diretivas de cache do servidor de origem. Ele armazena apenas respostas que incluem um Expira cabeçalho com uma data futura ou uma Controle de cache cabeçalho com um idade máxima valor maior que zero.
Agora você pode aplicar esses princípios na configuração do cache do proxy NGINX.
[1] Documentação NGINX: Uma zona de chaves de 1 MB armazena dados para cerca de 8.000 chaves.
Guia de configuração do cache do proxy NGINX
Aprenda como configurar e otimizar o cache do proxy NGINX passo a passo.
Configurações de parâmetros de cache
A base da configuração do cache do proxy NGINX é o caminho_do_cache_do_proxy diretiva. Aqui está um exemplo de configuração:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inativo=60m use_temp_path=off; Esta configuração cria uma estrutura de diretório de dois níveis, aloca 10 MB para o zona_de_chaves (suficiente para aproximadamente 80.000 chaves), define um tamanho máximo de cache de 10 GB e define um tempo limite de inatividade de 60 minutos.
Você também pode incluir estas diretivas opcionais para melhor controle:
| Diretiva | Objetivo |
|---|---|
proxy_cache_uso_obsoleto | Exibe conteúdo obsoleto se os servidores de origem não estiverem disponíveis |
proxy_cache_revalidate | Usa solicitações GET condicionais para verificar se o conteúdo ainda é válido |
atualização_de_fundo_do_proxy_cache | Atualiza conteúdo obsoleto em segundo plano |
bloqueio_de_cache_proxy | Evita que múltiplas solicitações sobrecarreguem o servidor de origem |
Depois de definir esses parâmetros, aloque memória e espaço em disco com base no tráfego esperado.
Gerenciamento do tamanho do cache
Para dimensionar seu cache de forma eficaz, considere o uso da memória e do disco. Veja como:
- Dimensionamento da zona de memória Alocar memória para o
zona_de_chavespara atender às suas necessidades de cache:keys_zone=enterprise_cache:100m; # Suporta aproximadamente 800.000 chaves de cache - Alocação de espaço em disco Ajuste o
caminho_do_cache_do_proxypara especificar o espaço máximo em disco:proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=enterprise_cache:100m max_size=10g inativo=24h use_temp_path=off;
Depois que esses parâmetros forem definidos, você estará pronto para inicializar e habilitar seu cache.
Inicialização de Cache
Depois de ajustar seus parâmetros e dimensionamento, siga estas etapas para ativar o cache:
- Use o
caminho_do_cache_do_proxydiretiva do exemplo acima e adicioneproxy_cache meu_cachepara sua configuração. - Habilitar o cache dentro do relevante
servidoroulocalizaçãobloquear:proxy_cache meu_cache; - Opcionalmente, inclua qualquer uma das diretivas de ajuste fino mencionadas anteriormente para melhorar o desempenho.
- Monitore o status do cache adicionando um cabeçalho personalizado:
adicionar_cabeçalho X-Cache-Status $upstream_cache_status;
Observação:De acordo com a documentação do NGINX, um arquivo de 1 MB
zona_de_chavespode armazenar aproximadamente 8.000 chaves.
Essa configuração garante que seu cache esteja pronto para lidar com o tráfego de forma eficiente, mantendo a flexibilidade para ajustes.
sbb-itb-59e1987
Gerenciamento de cache NGINX empresarial
Depois que o caminho e os parâmetros do cache estiverem definidos, é hora de dimensionar sua configuração para lidar com o tráfego de nível empresarial de forma eficaz.
Otimização da taxa de acertos do cache
Para melhorar a eficiência do cache, ative recursos como solicitações condicionais e atualizações em segundo plano:
proxy_cache_revalidate ativado; proxy_cache_background_update ativado; proxy_cache_use_stale atualizando; Evite sobrecarregar seu servidor de origem configurando estas configurações:
proxy_cache_lock ativado; proxy_cache_lock_timeout 5s; proxy_cache_min_uses 2; Para ambientes de alto tráfego, distribua a carga do cache entre vários dispositivos de armazenamento para melhorar o desempenho:
split_clients "${request_uri}" $disk { 20% "/dados/cache1"; 20% "/dados/cache2"; 20% "/dados/cache3"; 20% "/dados/cache4"; * "/dados/cache5"; } Depois que seu cache estiver otimizado para desempenho, concentre-se em protegê-lo para lidar com conteúdo confidencial.
Controles de segurança de cache
Para proteger solicitações confidenciais, ignore o cache e personalize as chaves de cache conforme necessário:
proxy_cache_bypass $http_pragma; proxy_cache_bypass $cookie_nocache; proxy_ignore_headers Controle de Cache; Para conteúdo personalizado ou solicitações baseadas em cookies, ajuste a chave de cache e os métodos suportados:
proxy_cache_key "$host$request_uri$cookie_user"; proxy_cache_methods OBTER POSTAGEM DE CABEÇA; Depois de proteger seu cache, monitore continuamente seu desempenho.
Rastreamento de desempenho de cache
Monitore o comportamento do cache usando definições de status para ajustar sua configuração:
| Status | Definição |
|---|---|
| ATUALIZANDO | Conteúdo obsoleto veiculado enquanto uma atualização está em andamento |
| REVALIDADO | O conteúdo em cache foi revalidado com o servidor de origem |
Analisar o X-Cache-Status métricas regularmente e ajuste as diretrizes para alinhá-las aos padrões de tráfego para obter resultados ideais.
ServerionConfiguração do cache NGINX

A Serverion personaliza as configurações de cache do NGINX com base nas necessidades específicas de cada carga de trabalho. Ao usar diretivas principais, eles otimizam as configurações de cache de forma diferente para VPS e servidores dedicados.
Caminhos de cache por carga de trabalho
Cargas de trabalho VPS
Para configurações de VPS, esta configuração atinge um equilíbrio entre eficiência de memória e tempos de resposta rápidos:
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=SERVERCACHE:10m max_size=10g inativo=60m use_temp_path=off; proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_cache_valid 200 302 60m; proxy_cache_valid 404 1m; O zona_de_chaves o tamanho é definido para acomodar aproximadamente 80.000 chaves.
Servidores dedicados
Para aplicativos de alto tráfego em servidores dedicados, a Serverion usa um sistema de cache distribuído em vários SSDs:
caminho_do_cache_proxy /níveis_do_cache1=1:2 zona_de_chaves=cache1:10m; caminho_do_cache_proxy /níveis_do_cache2=1:2 zona_de_chaves=cache2:10m; caminho_do_cache_proxy /níveis_do_cache3=1:2 zona_de_chaves=cache3:10m; clientes_divididos "${uri_de_solicitação}" $cachezone { 33% "cache1"; 33% "cache2"; * "cache3"; } Esta configuração distribui as gravações de cache uniformemente entre três SSDs usando o clientes_divididos diretiva.
Valores específicos para essas configurações são derivados da Tabela de Referência de Parâmetros de Cache do Serverion.
Configurações de infraestrutura
Para melhorar ainda mais o desempenho, as configurações do trabalhador NGINX são ajustadas para lidar com eficiência com a entrada e saída do cache:
worker_processes auto; worker_connections 1024; worker_cpu_affinity 0-3; # alinha os trabalhadores com os núcleos da CPU Esses ajustes garantem que as respostas armazenadas em cache sejam entregues com a máxima eficiência.
Resumo: Resultados do ajuste do cache do NGINX
A Serverion melhorou o desempenho e a confiabilidade em todos os seus sistemas de hospedagem por meio de ajustes detalhados no cache proxy. Refinando a hierarquia do cache, gerenciando as configurações de atualização e otimizando o processamento de cabeçalhos, eles mantiveram a entrega de conteúdo sem interrupções. Em tempo real X-Proxy-Cache As métricas permitiram que as equipes de TI ajustassem as configurações de cache de forma eficaz, resultando em tempos de resposta mais rápidos, menos pressão sobre os servidores de origem e melhor disponibilidade para operações corporativas.