ANÚNCIO

~/questoes/devops

Qual é a função principal da diretiva 'upstream' na configuração do NGINX?

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

A Diretiva Upstream no NGINX: Definindo Seus Servidores Backend

Conceito central

A diretiva upstream no NGINX é responsável por agrupar e especificar os endereços IP e portas dos servidores backend que irão receber as requisições. Ela funciona como um mapa que diz ao NGINX para onde encaminhar cada solicitação, permitindo distribuir a carga entre múltiplos servidores de forma automática.

Por que essa resposta faz sentido

A alternativa C está correta porque upstream existe justamente para listar quais servidores backend vão processar as requisições. É através da configuração upstream que você define a infraestrutura real que vai atender os usuários, enquanto o NGINX atua como intermediário (proxy reverso) direcionando o tráfego.

Armadilhas comuns

  • Confundir upstream com proxy_pass: upstream define ONDE estão os servidores, proxy_pass ENVIA a requisição para lá.
  • Achar que upstream sozinho faz load balancing automático: é verdade, mas apenas entre os servidores listados naquele upstream específico.
  • Imaginar que upstream cuida de SSL/TLS: o upstream é só sobre roteamento para IPs e portas, segurança SSL fica em outra camada.

Entenda as alternativas

A

Certificados SSL são configurados em outras diretivas como ssl_certificate e ssl_certificate_key dentro dos blocos server. O upstream não tem relação com gerenciamento de certificados SSL.

B

Limitar requisições por segundo ou minuto é função do rate limiting no NGINX, geralmente configurado com módulos como limit_req_zone e limit_req. Isso não é responsabilidade do upstream.

C

Essa é a função exata do upstream. Você define um bloco upstream com vários servidores backend listando IP e porta, e depois usa proxy_pass para direcionar requisições para esse grupo.

D

Reescrever URLs é feito com diretivas como rewrite ou através do módulo de módulo de proxy com proxy_redirect. O upstream apenas especifica onde enviar, não transforma URLs antes do envio.

Dica prática: Na prática, você sempre configura assim: primeiro cria um bloco upstream nomeado (ex: upstream app_servers { server 192.168.1.10:3000; server 192.168.1.11:3000; }), depois em um bloco server diferente usa proxy_pass http://app_servers; para encaminhar requisições. Isso deixa seu código limpo e fácil de manutenção.

Revise pensando: Se você tiver 3 servidores rodando sua aplicação em portas diferentes, qual diretiva você usaria para o NGINX saber que todos eles existem?