Questão de Programação — Servidores de aplicação — VUNESP 2023
Programação›Servidores de aplicação
Código
vu079177
Banca
VUNESP
Órgão
TJ-RS
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação - Especialidade: Análise de Suporte
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:
Para resolver o problema, o conteúdo a ser preenchido nas duas lacunas é:
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 HTTP é configurado no bloco upstream, onde cada servidor é declarado com a diretiva server, e o peso relativo é definido pelo parâmetro weight. Para repassar o dobro de requisições ao primeiro servidor, usa-se weight=2 para app1.exemplo.com e weight=1 para app2.exemplo.com — exatamente o que a alternativa A apresenta.
O NGINX é um servidor web de alto desempenho que também atua como proxy reverso e balanceador de carga. Quando você define um bloco upstream, está criando um grupo de servidores para os quais o NGINX distribui as requisições recebidas. A diretiva server dentro desse bloco especifica o endereço de cada servidor (host e porta) e pode receber parâmetros adicionais que controlam o comportamento do balanceamento. O parâmetro weight é o que define a proporção de requisições que cada servidor recebe: quanto maior o peso, mais requisições são direcionadas para ele. No caso, weight=2 para o primeiro e weight=1 para o segundo faz com que, a cada três requisições, duas vão para app1 e uma para app2 — exatamente o dobro.
A sintaxe correta é server endereco:porta weight=valor;. O ponto e vírgula é obrigatório ao final de cada diretiva. As alternativas que omitem a palavra server, usam sintaxe de outros softwares (como HAProxy) ou colocam o peso antes do endereço estão incorretas. A pegadinha da banca é justamente testar se o candidato conhece a sintaxe específica do NGINX, que difere de outras ferramentas de balanceamento.
Na prática, um bloco upstream completo ficaria assim:
upstream backend {
server app1.exemplo.com:80 weight=2;
server app2.exemplo.com:80 weight=1;
}
E depois, no bloco server ou location, você usaria proxy_pass http://backend; para encaminhar as requisições para esse grupo. O NGINX então distribui as requisições de acordo com os pesos definidos.
Guarde bem a estrutura: server + endereço + weight= + número, com ponto e vírgula no final. É exatamente esse formato que separa a alternativa correta das demais.
1Bloco upstream
2Diretiva server
3Endereço:porta
4weight=valor
5Ponto e vírgula
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
Esta é a única que segue a sintaxe correta do NGINX: server app1.exemplo.com:80 weight=2; e server app2.exemplo.com:80 weight=1;. O parâmetro weight define a proporção de requisições, e os valores 2 e 1 garantem que o primeiro servidor receba o dobro de requisições do segundo. O ponto e vírgula final é obrigatório.
Alternativa B — ❌ Incorreta
A alternativa B omite a palavra-chave server, que é obrigatória para declarar cada servidor no bloco upstream. A sintaxe app1.exemplo.com:80 2; não é reconhecida pelo NGINX. Além disso, o peso não é indicado com weight=, mas apenas com o número solto, o que também está errado.
Alternativa C — ❌ Incorreta
A alternativa C usa vírgula para separar os servidores e coloca os pesos em uma lista 2,1, o que não corresponde à sintaxe do NGINX. No NGINX, cada servidor é declarado em uma linha separada com a diretiva server, e o peso é um parâmetro individual. Essa sintaxe lembra outros balanceadores, como o HAProxy, mas não o NGINX.
Alternativa D — ❌ Incorreta
A alternativa D usa 2x e 1x para indicar os pesos, o que não é válido no NGINX. O parâmetro correto é weight=2 e weight=1, sem o sufixo x. A palavra server está presente, mas o formato do peso está errado.
Alternativa E — ❌ Incorreta
A alternativa E coloca o peso antes do endereço (server 2 app1.exemplo.com:80;), o que inverte a ordem correta. No NGINX, o endereço vem primeiro e o parâmetro weight depois, como em server app1.exemplo.com:80 weight=2;. Além disso, o peso não é indicado com weight=, apenas com o número, o que também está errado.
NÃO CAIA NESSA!
A banca explora a confusão entre a sintaxe do NGINX e a de outras ferramentas de balanceamento, como o HAProxy. No HAProxy, a configuração seria server app1 10.0.0.1:80 weight 2, sem o sinal de igual. Já no NGINX, o correto é server app1.exemplo.com:80 weight=2;. Fique atento a esse detalhe: o weight no NGINX usa o sinal de igual, e a diretiva server é obrigatória.
PEGA ESSA DICA!
Para memorizar a sintaxe do NGINX, lembre-se da estrutura: server <endereço>:<porta> weight=<número>;. O weight define a proporção de requisições, e o ponto e vírgula é obrigatório. Se a alternativa não tiver a palavra server ou o weight= com o sinal de igual, está errada.