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:
- Um servidor NGINX implantado e configurado no Linux
- 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.
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]\.";
}
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