Pular para o conteúdo principal

Questão de Redes de Computadores — Nginx — VUNESP 2023

Redes de ComputadoresNginx
Código
vu196571
Banca
VUNESP
Órgão
TJ RS
Ano
2023
Cargo
ATI ( )
Em uma aplicação web, deseja-se utilizar o NGINX para realizar balanceamento de carga HTTP entre dois servidores (app1.exemplo.com e app2.exemplo.com).   Deseja-se repassar o dobro de requisições para o primeiro servidor em relação ao segundo. Para isso, utiliza-se a seguinte configuração no bloco http do arquivo de configurações, em que duas linhas estão propositalmente ocultas e representadas por lacunas:   upstream backend {   ______   ______ } server {   location / {     proxy_pass http://backend;   } }   Para resolver o problema, o conteúdo a ser preenchido nas duas lacunas é:
  1. Aserver app1.exemplo.com:80 weight=2;   server app2.exemplo.com:80 weight=1;
  2. Bapp1.exemplo.com:80 2;    app2.exemplo.com:80 1;
  3. Capp1.exemplo.com:80,app2.exemplo.com:80    2,1
  4. Dserver app1.exemplo.com:80 2x;    server app2.exemplo.com:80 1x;
  5. Eserver 2 app1.exemplo.com:80;   server 1 app2.exemplo.com:80;
Revelar gabarito e comentário

GabaritoA — server app1.exemplo.com:80 weight=2;   server app2.exemplo.com:80 weight=1;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Balanceamento de carga HTTP com NGINX

Gabarito: letra A. No NGINX, o balanceamento de carga é configurado no bloco upstream, e cada servidor é declarado com a diretiva server, seguida do endereço e da porta. Para distribuir as requisições de forma ponderada, utiliza-se o parâmetro weight, que define o peso relativo de cada servidor — com weight=2 para o primeiro e weight=1 para o segundo, o primeiro recebe o dobro de requisições.

O NGINX é um servidor web e proxy reverso amplamente utilizado, e uma de suas funcionalidades mais comuns é o balanceamento de carga HTTP. O bloco upstream define um grupo de servidores de backend, e a diretiva server dentro desse bloco especifica cada servidor do grupo. O parâmetro weight é a chave para o balanceamento ponderado: ele indica a proporção de requisições que cada servidor deve receber em relação aos demais. Se um servidor tem weight=2 e outro weight=1, o primeiro recebe duas requisições para cada uma que o segundo recebe.

A sintaxe correta da diretiva server no bloco upstream é server endereco:porta parametros;. Os parâmetros são opcionais e podem incluir weight, max_fails, fail_timeout, entre outros. O valor padrão de weight é 1, e ele pode ser um número inteiro positivo. É importante notar que a diretiva server dentro do bloco upstream é diferente da diretiva server que define um bloco de configuração de um site — no contexto do upstream, ela apenas declara um servidor de backend.

Para entender melhor, considere um exemplo prático: se você tem dois servidores, um mais potente que o outro, pode configurar o NGINX para enviar mais tráfego ao mais potente. Com weight=3 para o primeiro e weight=1 para o segundo, a cada quatro requisições, três vão para o primeiro e uma para o segundo. Essa é uma forma simples e eficaz de otimizar o uso dos recursos.

A pegadinha desta questão está em reconhecer a sintaxe exata do NGINX. As alternativas incorretas usam formatos que não são válidos, como omitir a palavra server, usar vírgulas, ou colocar o peso antes do endereço. O candidato que conhece a sintaxe correta identifica imediatamente a alternativa A como a única que segue o padrão server endereco:porta weight=N;.

Guarde a estrutura server endereco:porta weight=N; dentro do bloco upstream — é exatamente esse formato que as alternativas tentam distorcer.

  1. 1Bloco upstream
  2. 2Diretiva server
  3. 3Endereço:porta
  4. 4Parâmetro weight=N
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

Esta é a única alternativa que utiliza a sintaxe correta do NGINX. A diretiva server é usada para declarar cada servidor no bloco upstream, seguida do endereço e da porta, e o parâmetro weight define o peso de cada um. Com weight=2 para o primeiro e weight=1 para o segundo, o NGINX distribui as requisições na proporção de 2:1, exatamente como desejado.

Alternativa B — ❌ Incorreta

Esta alternativa omite a palavra-chave server, que é obrigatória para declarar um servidor no bloco upstream. A sintaxe app1.exemplo.com:80 2; não é válida no NGINX — sem a diretiva server, o NGINX não reconhece a linha como uma declaração de servidor.

Alternativa C — ❌ Incorreta

Esta alternativa usa vírgulas para separar os servidores e os pesos, o que não é a sintaxe do NGINX. No bloco upstream, cada servidor é declarado em uma linha separada com a diretiva server, e os parâmetros são separados por espaços, não por vírgulas.

Alternativa D — ❌ Incorreta

Esta alternativa usa o sufixo x após o peso (2x e 1x), o que não é reconhecido pelo NGINX. O parâmetro weight deve ser um número inteiro, sem qualquer sufixo. A sintaxe correta é weight=2, não 2x.

Alternativa E — ❌ Incorreta

Esta alternativa inverte a ordem dos elementos, colocando o peso antes do endereço (server 2 app1.exemplo.com:80;). No NGINX, a ordem correta é server endereco:porta weight=N; — o peso vem depois do endereço, como um parâmetro.

A regra de ouro para o balanceamento de carga no NGINX é: dentro do bloco upstream, cada servidor é declarado com server endereco:porta;, e o peso é definido com o parâmetro weight=N. Essa é a sintaxe que você deve memorizar para a prova.

Gabarito: letra A

Link permanente: /questoes/vu196571