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ê deseja usar o NGINX ao máximo, 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 /etc/nginx diretório em uma máquina Linux.
O que é NGINX?
NGINX é um servidor 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. Vejamos como fazê-lo.
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, o papel 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 auto 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:
processador grep /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 o worker_connections variável 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 habilitado 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:
servidor {
gzip em;
gzip_vary ativado;
gzip_min_length 10240;
gzip_proxied expirado não-cachenão-lojaprivado autenticação;
gzip_types texto/texto simples/texto css/texto xml/aplicativo javascript/aplicativo x-javascript/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. O mantenha vivo As conexões 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. Ajustar 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. Desabilitar 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.logprincipalbuffer = 16k
7. Ajustar 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 /etc/nginx/sites-available diretório:
localização ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expira 90d;
}
Essa configuração armazenará os arquivos em cache por 90 dias desde o último acesso do navegador.
8. Ativar 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 no http seção no arquivo de configuração para ativar o cache de arquivo aberto:
http {
open_file_cache max=1024 inativo=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors ativado;
}
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.