뚠뚠멍의 생각들

Configurações principais do nginx como servidor web

  • Idioma de escrita: Coreana
  • País de referência: Todos os paísescountry-flag
  • TI

Criado: 2024-09-26

Criado: 2024-09-26 21:20

O Nginx é um servidor web de código aberto, frequentemente usado como servidor web ou servidor proxy web.

Com a configuração correta, ele pode fornecer conteúdo estático de forma eficiente.

Neste artigo, documentarei algumas de suas configurações principais.


Algumas configurações principais relacionadas ao desempenho

1. Compressão gzip

Ao carregar um site, inúmeros arquivos, como JavaScript, imagens, HTML e CSS, são recebidos do servidor web.

Em vez de enviar esses conteúdos em seu formato original, o uso da compressão gzip pode reduzir significativamente a quantidade de dados transmitidos.


Ou seja, ao aplicar isso,

- A quantidade de dados é reduzida, economizando largura de banda.

- Os recursos do servidor podem ser economizados.

- Do ponto de vista do usuário, a velocidade de carregamento real é mais rápida.


Por outro lado, como o servidor precisa executar a compressão gzip antes de responder ao conteúdo, o uso da CPU do servidor pode aumentar.

É necessário testar antes da implementação em nível de produção, incluindo o tipo de arquivo a ser compactado, o nível de compactação e o tamanho do arquivo a ser compactado.


Aqui estão algumas configurações relacionadas ao gzip.

* gzip_vary instrui o servidor a enviar conteúdo compactado e não compactado para clientes que suportam e não suportam gzip, respectivamente. (Informa que diferentes versões de conteúdo podem ser fornecidas de acordo com o cabeçalho de solicitação do cliente (Accept-Encoding)).


2. Configuração do proxy_buffer

O Nginx armazena em buffer a resposta antes de enviá-la ao cliente.

Quando um servidor web envia uma resposta a um cliente, se o cliente for lento, o servidor precisa esperar continuamente para transmitir dados. (Gargalo de rede)

Como os recursos do servidor estão sendo usados continuamente nesse caso, para resolver isso, um buffer é usado para processar temporariamente a resposta, independentemente da velocidade de processamento do cliente. Isso resulta nos seguintes benefícios:

- Otimização da carga do servidor

- Redução de gargalos de rede

※ Se o tamanho do buffer for muito grande, a transmissão de dados em tempo real, como streaming de texto, pode ser atrasada, portanto, é necessário testar. Especialmente com o surgimento de muitos serviços relacionados a IA recentemente, se o streaming de texto não funcionar, verifique esta configuração.


3. Configurações do worker e http

O worker é o processo que processa as solicitações do cliente e você pode configurar quantos workers terá para cada núcleo da CPU do servidor.

HTTP geralmente é uma solicitação - conexão - resposta - encerramento da conexão, mas para reduzir os recursos usados para estabelecer conexões em várias solicitações, a conexão do cliente pode ser mantida. Esta é a configuração keep-alive.

A razão para agrupar esses dois é a seguinte:

Se o servidor estiver usando 4 núcleos, o número teórico de conexões possíveis é 1.024 * 4 = 4.096.

(Pode não ser preciso devido aos recursos ou ao ambiente de tráfego)

Quando 4.096 clientes estão conectados simultaneamente e ocupam todos os keep-alives por 65 segundos,

Se o 4.097º usuário tentar conectar, ele não poderá se conectar, resultando em um possível atraso na resposta.


Portanto, assumindo que os recursos do servidor são estáveis devido a escalonamento automático, etc., se houver um atraso na resposta durante um evento, as configurações acima podem ter um impacto indireto.


4. Outros - bloco location

Algumas configurações, como o buffer proxy, podem ser aplicadas por URL de solicitação.

* Algumas configurações, como keep-alive, são aplicadas no nível do servidor HTTP e não podem ser configuradas por bloco.

server {
listen 80;
server_name example.com;


Com essas configurações, você pode otimizar o desempenho da web. Considere vários casos de teste e faça testes suficientes para otimizar o desempenho do servidor!

* É possível aplicar o Nginx com as configurações alteradas sem tempo de inatividade do servidor, portanto, é geralmente estável.






Comentários0