ANÚNCIO

~/questoes/devops

Qual algoritmo de load balancing é considerado o padrão no NGINX quando não especificado?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência #10 – Como aplicar proxy reverso no NGINX | Thi Code
Para fixar

Algoritmos de Load Balancing no NGINX: Entendendo o Padrão Round-Robin

Conceito central

Load balancing é o processo de distribuir requisições entre múltiplos servidores backend para evitar sobrecarga em um único servidor. O NGINX, quando configurado como proxy reverso, utiliza diferentes algoritmos para essa distribuição, sendo o round-robin o comportamento padrão quando nenhum outro é explicitamente especificado.

Por que essa resposta faz sentido

O round-robin é o algoritmo padrão do NGINX porque distribui as requisições de forma sequencial e igualitária entre todos os servidores upstream disponíveis. Essa abordagem simples é eficaz para cenários onde os servidores têm capacidades similares, garantindo que cada backend receba aproximadamente a mesma quantidade de requisições.

Armadilhas comuns

  • Confundir o comportamento padrão com o 'melhor' algoritmo - round-robin é padrão por ser simples, não necessariamente o ideal para toda situação
  • Achar que weighted round-robin é padrão porque parece mais inteligente - na verdade requer configuração manual com o parâmetro 'weight'
  • Não diferenciar entre o que o NGINX faz automaticamente e o que precisa ser explicitamente configurado na diretiva upstream

Entenda as alternativas

A

Round-robin é realmente o algoritmo padrão do NGINX. Ele funciona como um carrossel, enviando a primeira requisição para o servidor 1, a segunda para o servidor 2, a terceira para o servidor 3, e depois volta ao servidor 1. Simples, previsível e funciona bem quando os servidores têm performance similar.

B

Weighted round-robin é um algoritmo mais avançado que permite atribuir pesos diferentes aos servidores, fazendo com que servidores mais potentes recebam mais requisições. Embora seja útil, não é o padrão do NGINX e precisa ser configurado explicitamente com a diretiva 'weight'.

C

Least connections escolhe o servidor com o menor número de conexões ativas no momento. É útil quando as requisições têm durações variáveis, mas não é o comportamento padrão do NGINX. Precisa ser configurado com 'least_conn' na diretiva upstream.

D

IP-hash usa o endereço IP do cliente para determinar sempre o mesmo servidor backend para aquele cliente. Isso é útil para manter sessões pegajosas (sticky sessions), mas não é o padrão do NGINX e requer configuração explícita com 'ip_hash'.

Dica prática: Na próxima vez que configurar um upstream no NGINX, teste sem especificar nenhum algoritmo e veja o round-robin em ação nos logs. Depois adicione 'least_conn' ou 'ip_hash' e observe como o comportamento muda. Isso vai consolidar o entendimento de qual é realmente o padrão.

Revise pensando: Se você configurar um upstream no NGINX com 3 servidores backend sem especificar nenhum algoritmo, para qual servidor a 5ª requisição será enviada?