O que é NGINX
Servidor web e proxy reverso
NGINX é um servidor web de alto desempenho de código aberto, proxy reverso, balanceador de carga e cache HTTP. Criado por Igor Sysoev em 2004, agora pertence à F5 Networks.
Funções Principais
- Servidor web — servir conteúdo estático
- Proxy reverso — proxy de requisições para servidores backend
- Balanceamento de carga — distribuição de tráfego entre servidores
- Terminação SSL/TLS — tratamento de conexões HTTPS
- Cache HTTP — cache de respostas de servidores upstream
Vantagens
- Arquitetura assíncrona orientada a eventos
- Baixo consumo de memória
- Alto desempenho (10K+ conexões)
- Configuração simples
- Arquitetura modular
Casos de Uso Típicos
- Servir arquivos estáticos (HTML, CSS, JS, imagens)
- Proxy reverso para Node.js, Python, PHP, Java
- API Gateway
- Balanceamento de carga entre containers Docker
- SSL offloading para microsserviços
Configuração Básica
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
location /static/ {
root /var/www;
expires 30d;
}
}
NGINX vs Apache
| Parâmetro | NGINX | Apache | |-----------|-------|--------| | Arquitetura | Event-driven | Processo/Thread | | Arquivos estáticos | Mais rápido | Mais lento | | .htaccess | Não | Sim | | Configuração | Centralizada | Distribuída |
Módulos Populares
- ngx_http_gzip_module — compressão de respostas
- ngx_http_ssl_module — HTTPS
- ngx_http_proxy_module — proxying
- ngx_http_upstream_module — balanceamento de carga
- ngx_http_rewrite_module — reescrita de URL