1. O Que E o Nginx
Nginx (pronuncia-se "engine-x") e um servidor web de alta performance desenvolvido por Igor Sysoev em 2004. Diferente do Apache, que cria uma thread por conexao, o Nginx usa um modelo orientado a eventos que permite lidar com milhares de conexoes simultaneas com baixo consumo de memoria.
Alem de servidor web, o Nginx e amplamente usado como proxy reverso, balanceador de carga e servidor de cache — tornando-o a escolha preferida para arquiteturas de microsservicos e aplicacoes de alto trafego.
2. Estrutura do Server Block
Um server block no Nginx e equivalente ao VirtualHost do Apache. Ele define como o servidor deve responder para um determinado dominio ou porta. A estrutura basica inclui listen (porta), server_name (dominio), root (diretorio publico) e um ou mais blocos location.
- Cada dominio deve ter seu proprio arquivo de configuracao em /etc/nginx/sites-available/
- Crie um symlink em /etc/nginx/sites-enabled/ para ativar o site
- Sempre teste a configuracao com
nginx -tantes de recarregar
3. Configurando SSL com Let's Encrypt
Let's Encrypt oferece certificados SSL gratuitos e automatizados. O Certbot gerencia automaticamente a renovacao. Para integrar com Nginx, instale o Certbot e execute certbot --nginx -d seudominio.com. Os caminhos dos certificados gerados seguem o padrao /etc/letsencrypt/live/seudominio.com/.
"TLS 1.2 e 1.3 com ciphers modernos garantem uma nota A no SSL Labs. A configuracao gerada por esta ferramenta segue as melhores praticas atuais."
4. Integracao com PHP-FPM
Diferente do Apache com mod_php, o Nginx nao processa PHP nativamente. E necessario delegar a execucao ao PHP-FPM (FastCGI Process Manager) via socket Unix ou TCP. O socket Unix tem menor overhead e e recomendado para servidores single-node. A diretiva fastcgi_pass aponta para o socket correto da versao do PHP instalada.
5. Proxy Reverso para Node.js/Python
Para aplicacoes que rodam em outras portas (como Node.js na porta 3000 ou Flask na 5000), o Nginx age como proxy reverso, recebendo as requisicoes externas e encaminhando internamente. As diretivas proxy_set_header garantem que a aplicacao receba os headers corretos como o IP real do cliente e o protocolo original.
6. Perguntas Frequentes
Qual a diferenca entre Nginx e Apache?
Apache usa um modelo de processo/thread por conexao (prefork/worker MPM), enquanto Nginx usa um modelo assincrono baseado em eventos. O Nginx geralmente supera o Apache em carga alta e uso de memoria, mas o Apache tem mais modulos e e mais facil de configurar para casos simples com .htaccess.
Posso usar esta configuracao em producao?
Sim, com cautela. A configuracao gerada segue boas praticas, mas sempre revise para o seu caso especifico. Execute nginx -t para validar antes de recarregar e faca backup da configuracao anterior.
Como recarregar o Nginx sem derrubar o servico?
Use systemctl reload nginx ou nginx -s reload. Isso aplica a nova configuracao sem interromper conexoes existentes (graceful reload).