8 maneiras de ajustar o desempenho do NGINX no Linux

8 maneiras de ajustar o desempenho do NGINX no Linux

O NGINX é um servidor web popular, gratuito e de código aberto. As configurações padrão do NGINX são boas o suficiente para fazer o servidor web funcionar.

No entanto, se você quiser usar o NGINX ao máximo, você precisa brincar com seus arquivos de configuração e definir os parâmetros que otimizarão o desempenho do servidor. Você encontrará os arquivos de configuração no diretório /etc/nginx em uma máquina Linux.

O que é NGINX?

O NGINX é um servidor da Web moderno que você pode usar como streamer de mídia, servidor de e-mail, proxy reverso, balanceador de carga, servidor de cache e muito mais.

Usado por muitos grandes perfis, como VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter, etc., o NGINX é amplamente conhecido por seu desempenho de alto nível. Outra vantagem de usar o NGINX é que é fácil de configurar e aprender.

Pré-requisitos para ajustar o desempenho do NGINX no Linux

Você precisa atender aos seguintes requisitos antes de iniciar as configurações do NGINX:

  1. Um servidor NGINX implantado e configurado no Linux
  2. Um entendimento básico do NGINX e seus arquivos de configuração

Se você atender a esses requisitos, estará pronto para ajustar o NGINX para um desempenho ideal. Vamos ver como fazer isso.

1. Configurar processos de trabalho no NGINX

A arquitetura NGINX consiste em um processo mestre e vários processos de trabalho. O trabalho do processo mestre é avaliar a configuração e gerenciar os trabalhadores. Por outro lado, a função de um processo de trabalho é lidar com as solicitações recebidas e criar uma conexão entre o cliente e o servidor.

O valor do processo é definido como automático por padrão. Isso define o número de processos de trabalho igual ao número de núcleos de CPU disponíveis. Para saber quantos núcleos de CPU estão presentes em seu sistema, execute o seguinte comando:

grep processor /proc/cpuinfo | wc -l

Se você deseja aumentar o número de processos de trabalho, precisa configurar isso no arquivo de configuração do NGINX.

Abra o arquivo com o nano:

nano etc/nginx/nginx.conf

Para configurar mais processos de trabalho, altere o valor padrão para o número máximo de núcleos de CPU disponíveis em seu sistema.

arquivo nginx.configuration mostrando 4 processadores configurados

2. Configurar conexões de trabalho

Outro parâmetro que você pode modificar para aprimorar o desempenho do NGINX são as conexões de trabalho. Este é o número máximo de conexões TCP que cada processo de trabalho pode manipular simultaneamente.

A maioria dos sistemas tem um valor padrão de 512 conexões, mas muitos sistemas modernos também suportam um número maior. Você pode verificar quantas conexões seu sistema suporta com:

ulimit -n

A saída será o número máximo de conexões suportadas. Você pode então modificar a variável worker_connections no arquivo de configuração NGINX para melhorar o desempenho.

3. Permitir compactação GZIP no NGINX

NGINX usa GZIP para compactação e descompactação de arquivos. Se ativado no arquivo de configuração NGINX, você pode economizar largura de banda e melhorar o tempo de carregamento do site quando a conexão estiver lenta.

Para permitir a compactação GZIP, adicione as seguintes linhas no arquivo de configuração NGINX:

server {
gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6]\.";
}

configuração gzip comentada no arquivo de configuração nginx

4. Limite o valor do tempo limite no NGINX

Os valores de tempo limite reduzidos também desempenham um papel importante no aprimoramento do desempenho do NGINX. As conexões keepalive reduzem a sobrecarga do processador e da rede ao abrir e fechar conexões.

Você pode modificar os seguintes parâmetros no arquivo de configuração para limitar os tempos limite:

http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}

5. Ajuste o tamanho do buffer

Você também pode ajustar os buffers NGINX para otimizar o desempenho do servidor. Se o tamanho do buffer for muito baixo, o NGINX gravará em um arquivo temporário que faz com que grandes operações de E/S sejam executadas constantemente.

Você precisa definir os seguintes parâmetros de buffer para que o NGINX funcione da melhor maneira possível:

http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}

6. Desativar logs de acesso ou habilitar buffer de logs de acesso

Os logs consomem uma grande quantidade de espaço em disco e ciclos de CPU/IO que podem afetar o desempenho do servidor se ele registrar todas as solicitações.

Você pode desativar os logs de acesso, o que economizará espaço em disco e processamento da CPU. Para desativar os logs de acesso, adicione a seguinte linha ao arquivo de configuração do NGINX:

access_log off;

Os logs são importantes, pois ajudam na solução de problemas. Desativar completamente os logs não é uma boa prática. Nesse caso, você pode habilitar o buffer de logs de acesso. Isso permitirá que o NGINX armazene em buffer uma série de logs e os grave no arquivo de log de uma só vez, em vez de aplicar diferentes operações de log em cada solicitação.

Adicione a seguinte linha no arquivo de configuração NGINX para permitir o buffer de logs de acesso:

access_log /var/log/nginx/access.log main buffer=16k

7. Ajuste o período de cache de conteúdo estático no NGINX

O conteúdo do site que permanece o mesmo nas páginas é conhecido como conteúdo estático. O cache desse conteúdo permite que ele seja colocado em locais de fácil acesso. Esse mecanismo reduz o uso de largura de banda, permite acessibilidade rápida e, posteriormente, melhora o desempenho do site.

Quando um cliente solicita conteúdo estático, o servidor oferece uma versão em cache do conteúdo. Adicione as seguintes linhas no arquivo de host virtual colocado no diretório /etc/nginx/sites-available :

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 90d;
}

Essa configuração armazenará os arquivos em cache por 90 dias desde o último acesso do navegador.

8. Habilite o Cache de Arquivo Aberto no NGINX

Você também pode usar parâmetros de cache de arquivo aberto no arquivo de configuração NGINX para aprimorar seu desempenho. Essa diretiva permite que o descritor de arquivo e os arquivos frequentemente visitados sejam armazenados em cache no servidor.

Adicione as seguintes linhas na seção http no arquivo de configuração para ativar o cache de arquivo aberto:

http {
open_file_cache max=1024 inactive=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}

Obtenha o melhor do NGINX modificando seus arquivos de configuração

Uma boa prática a seguir ao alterar as configurações é lidar com uma configuração de cada vez e testá-la. Se funcionar, passe para a próxima configuração. Caso contrário, você sempre pode alterar a configuração de volta para o valor padrão.

Ao modificar os parâmetros configurados nos arquivos de configuração do NGINX, como nginx.conf e arquivos de host virtual, você pode hackear o NGINX para obter o melhor desempenho.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *