ANÚNCIO

~/questoes/devops

Qual é a principal diferença arquitetural entre o NGINX e servidores tradicionais como Apache?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência #06 – O que é́ NGINX e para que serve? | Thi Code
Para fixar

Arquitetura Event-Driven: NGINX vs Apache

Conceito central

A principal diferença entre NGINX e Apache está no modelo de processamento de requisições. Enquanto o Apache cria um processo ou thread para cada conexão, o NGINX usa uma arquitetura event-driven que processa múltiplas requisições com poucos processos, tornando-se muito mais eficiente em alta concorrência.

Por que essa resposta faz sentido

O NGINX utiliza arquitetura event-driven com model não-bloqueante, permitindo que um único worker process gerencie milhares de conexões simultâneas. O Apache, por sua vez, cria um novo processo ou thread para cada conexão, consumindo muito mais recursos de memória e CPU.

Armadilhas comuns

  • Confundir o modelo de processamento: achar que o NGINX cria threads como o Apache, quando na verdade ele usa eventos assíncronos
  • Pensar que o Apache é sempre melhor ou pior: o Apache é bom para algumas situações, mas o NGINX foi criado especificamente para resolver problemas de escalabilidade
  • Acreditar que NGINX é limitado a poucas linguagens: o NGINX funciona como reverse proxy e pode direcionar requisições para qualquer tipo de aplicação backend

Entenda as alternativas

A

Essa afirmação é falsa. O Apache pode sim ser eficiente em algumas situações com baixa concorrência, mas o NGINX foi especificamente desenvolvido para superar o Apache em cenários de alta concorrência. A vantagem do NGINX está justamente em sua capacidade superior de lidar com muitas conexões simultâneas.

B

Essa alternativa inverteu a informação. Na verdade, é o Apache que cria um processo ou thread por conexão. O NGINX, ao contrário, cria poucos processos workers que lidam com múltiplas conexões de forma assíncrona, sem criar threads para cada requisição.

C

Essa informação é completamente incorreta. O NGINX funciona perfeitamente com diversas linguagens como Python, Java, PHP e muitas outras, não apenas Node.js. Da mesma forma, o Apache também suporta múltiplas linguagens de programação.

D

Essa é a resposta correta. O NGINX utiliza uma arquitetura baseada em eventos assíncronos (event-driven), enquanto o Apache usa o modelo tradicional de criar um processo ou thread para cada conexão. Isso torna o NGINX muito mais leve e escalável.

Dica prática: Para visualizar essa diferença na prática, pense em um restaurante: o Apache é como ter um atendente por cliente (processo/thread por conexão), enquanto o NGINX é como ter um único atendente que gerencia múltiplas mesas de forma eficiente, anotando pedidos e entregando sem ficar bloqueado esperando um cliente terminar.

Revise pensando: Qual é a vantagem principal de o NGINX usar arquitetura event-driven em vez de criar um processo por conexão como o Apache?