Gerador de Configuração Nginx
Escrever configurações Nginx do zero significa lembrar de cada proxy_set_header, cada tipo MIME gzip e a diferença entre try_files $uri/ /index.php?$args e a versão que quebra sutilmente o roteamento. Este gerador solicita o domínio, upstream, manipulador PHP e caminhos SSL, e então gera um bloco de servidor com padrões sensatos para TLS, HTTP/2, cache estático e compressão.
Como gerar seu bloco de servidor
-
1
Escolha um modelo
Site estático, PHP-FPM (Laravel, WordPress), proxy reverso Node.js ou um simples redirecionamento 301.
-
2
Insira o domínio
Inclua a lista de server_name: tipicamente variantes www e não-www.
-
3
Defina os detalhes do SSL
Aponte para seus arquivos fullchain e privkey, ou pule para usar apenas HTTP.
-
4
Ajuste o upstream
Porta, caminho do socket ou URL de backend para casos de proxy_pass.
-
5
Copie e implemente
Coloque a saída em /etc/nginx/sites-available, execute nginx -t e recarregue.
Como deve ser um bom bloco de servidor
Um host virtual Nginx moderno geralmente tem estas partes:
| Seção | Propósito |
|---|---|
listen 443 ssl http2 |
Aceitar HTTPS com HTTP/2 habilitado |
ssl_certificate + ssl_certificate_key |
Aponte para o material TLS |
ssl_protocols TLSv1.2 TLSv1.3 |
Descartar versões antigas do TLS |
gzip on + tipos |
Comprimir texto/HTML/JSON/JS/CSS dinamicamente |
Cabeçalhos expires para ativos estáticos |
Reduzir viagens de ida e volta de visitantes repetidos |
try_files |
Roteie para um controlador frontal (PHP, Laravel, etc.) |
| HSTS + cabeçalhos de segurança | Mantenha o navegador honesto sobre TLS |
Essenciais do proxy reverso
Para aplicativos Node.js, Python, Ruby rodando atrás do Nginx:
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
Esquecer X-Forwarded-For é a maneira clássica de perder os IPs reais dos clientes nos logs do seu aplicativo.
Erros comuns
- Falta de fallback
server_name. O Nginx usa o primeiro bloco de servidor como padrão se nenhum nome corresponder. Coloque um bloco catch-allserver_name _retornando 444 para evitar ataques de cabeçalho de host. - Ordem errada do certificado. O arquivo
ssl_certificatedeve ser fullchain (folha + intermediários), não apenas a folha. - Cache excessivo. Enviar
expires 1yem/index.htmlarruinará implantações. Em vez disso, versione as URLs dos ativos estáticos. - Sem teste antes do recarregamento. Sempre execute
nginx -tantes desystemctl reload nginx: um erro de sintaxe tira o site do ar.
Perguntas frequentes
HTTP/2 é estável e suportado universalmente no Nginx 1.25+. HTTP/3 (QUIC) está disponível no Nginx 1.25+ como experimental. Para uma configuração de produção em 2025, habilite HTTP/2 e opcionalmente adicione HTTP/3 com as diretivas http3 e quic.
A convenção é /etc/ssl/certs/ para cadeias públicas e /etc/ssl/private/ para chaves. O Let’s Encrypt coloca tudo em /etc/letsencrypt/live/domain/. Use o que sua ferramenta de renovação espera.
Sim, para a maioria dos sites. Adicione um bloco de servidor separado na porta 80 que retorna 301 https://$host$request_uri. Combinado com HSTS, o bloco HTTP raramente será acessado após a primeira solicitação.
Execute sudo nginx -t para analisar a configuração sem recarregar. Se imprimir “syntax is ok” e “test is successful”, recarregue com sudo systemctl reload nginx. Nunca use restart em produção: o reload aplica a nova configuração sem interromper o tráfego.
Ferramentas relacionadas
Referência da Tabela ASCII
Tabela ASCII completa de 0 a 127 com valores decimais, hexadecimais, octais e binários e notação de referência numérica HTML, incluindo NUL, LF e DEL.
Referência de Caracteres HTML
Lista pesquisável de entidades HTML, seus códigos nomeados e numéricos, e uma cópia com um clique para caracteres e símbolos especiais.
Referência de atalhos de teclado
Pesquise atalhos padrão documentados do VS Code, Chrome e Bash com GNU Readline no macOS, Windows e Linux.
Conversor de Tamanho de Arquivo
Converta entre bytes, KB, MB, GB, TB e as unidades binárias IEC (KiB, MiB, GiB, TiB), combinando decimal e binário como preferir.
Validador de Email
Valide um endereço de email: verificação de sintaxe RFC 5322, consulta de registro MX em tempo real, além de detalhes de parte local, domínio e comprimento. Nenhum email é enviado.
Gerador de EditorConfig
Monte um .editorconfig com as suas regras de indentação, fim de linha e charset e acrescente a seção correta para cada linguagem do seu repositório: Python, Go, YAML, Makefile e mais.
Ferramenta disponível em outros idiomas
- Generator konfiguracji Nginx [PL]
- Nginx 設定ジェネレーター [JA]
- ตัวสร้างไฟล์ config ของ Nginx [TH]
- مولّد إعدادات Nginx [AR]
- Generador de Configuración de Nginx [ES]
- Nginx Konfigurationsgenerator [DE]
- Trình tạo cấu hình Nginx [VI]
- Nginx-konfigurationsgenerator [SV]
- Nginx-configuratiegenerator [NL]
- Générateur de configuration Nginx [FR]
- Generator Konfigurasi Nginx [ID]
- Nginx 설정 생성기 [KO]
- Nginx Config Generator [EN]
- Generatore di Configurazione Nginx [IT]
- Генератор конфигураций Nginx [RU]
- Nginx Yapılandırma Üreteci [TR]
- Nginx 配置生成器 [ZH]