Skip to content
Latchkey

Nginx vs Apache: Qual servidor web?

O Nginx é um servidor orientado a eventos e reverse proxy ajustado para concorrência; o Apache é o clássico servidor web flexível e rico em módulos, com configuração por diretório.

O Nginx usa um modelo assíncrono e orientado a eventos que lida com muitas conexões concorrentes com baixo consumo de memória, o que o torna um reverse proxy e servidor de arquivos estáticos popular. O Apache usa um modelo de processos/threads com amplo suporte a módulos e overrides por diretório via .htaccess, valorizado pela flexibilidade e compatibilidade com aplicações legadas. O Nginx favorece concorrência pura; o Apache favorece configurabilidade e amplitude de módulos.

NginxApache
ModeloOrientado a eventos (async)Processos/threads
Arquivos estáticosMuito rápidoRápido
ConfiguraçãoCentral, sem .htaccess.htaccess por diretório
Reverse proxyExcelenteBom (mod_proxy)
Melhor paraAlta concorrência, proxyMódulos flexíveis, legado

Caso de uso e performance

O Nginx se destaca como reverse proxy, load balancer e servidor de estáticos sob alta concorrência. O Apache se destaca quando você precisa de módulos ricos, configuração dinâmica por diretório ou compatibilidade com aplicações que o pressupõem. Muitas stacks colocam o Nginx à frente e fazem proxy para servidores de aplicação.

Em CI e deploy

Ambos compilam em containers e são distribuídos via pipelines de imagem padrão. Faça smoke-test da configuração (nginx -t / apachectl configtest) no CI antes do deploy. Qualquer um faz deploy de forma limpa a partir de runners gerenciados, onde runners mais rápidos encurtam as etapas de build de imagem e teste de configuração.

O veredito

Reverse proxy de alta concorrência, load balancing e entrega de estáticos: Nginx. Módulos ricos, configuração por diretório ou compatibilidade com aplicações legadas: Apache. Um padrão comum é o Nginx como proxy de borda com o Apache (ou um servidor de aplicação) por trás.

Guias relacionados