Gerador de configuração do Nginx — Blocos de servidor e proxy reverso

Escolha o que o Nginx deve fazer — servir um site estático ou um SPA, atuar como proxy para um aplicativo Node/Python ou executar PHP — e marque os recursos extras. Você recebe um bloco de servidor comentado e pronto para uso, com HTTPS, redirecionamentos www, gzip, cache e cabeçalhos de segurança.

Atualizado em
nginx.conf

Salvar como /etc/nginx/sites-available/example.com.conf, vincule isso a sites-enabled, depois execute sudo nginx -t && sudo systemctl reload nginx.

Seus dados nunca saem do seu computador. Todo o processamento acontece localmente no navegador.

Como usar: Gerador de configuração do Nginx

  1. Escolhe o cenário: site estático, SPA (todas as rotas são redirecionadas para index.html), proxy reverso para um aplicativo em uma porta ou PHP-FPM.
  2. Digite seu domínio, a raiz do documento ou o endereço upstream e escolha como www deve ser tratado.
  3. Marque os recursos extras — HTTPS com caminhos do Let’s Encrypt, gzip, cache estático, cabeçalhos de segurança, WebSockets e limitação de taxa.
  4. Copie a configuração, teste-a com nginx -t e atualize o Nginx.

O que cada opção oferece

OpçãoDiretivas
HTTPSServidor na porta 80 que redireciona com 301, listen 443 ssl, caminhos dos certificados do Certbot e a localização do desafio ACME
SPAtry_files $uri $uri/ /index.html; para que as rotas do lado do cliente não retornem 404
Proxy reversoproxy_pass mais Host, X-Real-IP, X-Forwarded-For e X-Forwarded-Proto cabeçalhos
WebSocketsproxy_http_version 1.1 com Upgrade / Connection cabeçalhos
gzipCompressão para texto, JSON, JS, CSS, SVG e fontes
Armazenamento em cache estáticoUm ano Cache-Control: immutable para recursos com hash, cache curto para HTML
Cabeçalhos de segurançaX-Content-Type-Options, Referrer-Policy, X-Frame-Options, Permissions-Policy
Limite de taxalimit_req_zone (conforme o http contexto) e limit_req com um pico

Obter o certificado

Primeiro, crie a configuração com o HTTPS desativado, recarregue o Nginx e execute sudo certbot certonly --webroot -w /var/www/letsencrypt -d example.com -d www.example.com — ou simplesmente sudo certbot --nginx. Depois, ative o HTTPS, atualize e verifique o resultado com o SSL Checker, o Redirect Checker e o Security Headers Checker.

Erros comuns

  • Falta de ponto-e-vírgula — toda diretiva termina com ;. nginx -t mostra a linha exata.
  • herança do add_header — um add_header dentro de um location substitui todos os cabeçalhos do nível do servidor. O gerador repete os cabeçalhos de segurança quando necessário.
  • Barra final no `proxy_pass` — proxy_pass http://app/; remove o prefixo da localização, proxy_pass http://app; mantém-no.
  • Tipos MIME errados — fontes ou .webmanifest servidas como application/octet-stream; dá uma olhada no MIME Type Lookup.

Está rodando no Docker? Combine com o Gerador do Docker Compose.

Também pesquisado como: configuração do proxy reverso do nginx, configuração do nginx spa, bloco do servidor nginx, redirecionamento https no nginx, proxy websocket do nginx, configuração do nginx e do php-fpm, redirecionamento do nginx para www.

Ferramentas que combinam com: Gerador de configuração do Nginx

  • Apache VirtualHost Generator — Get a complete Apache virtual host config for your domain: a static site, WordPress, PHP-FPM or a reverse proxy to a Node or Python app.
  • Caddyfile Generator — Caddy gets HTTPS certificates automatically — you only describe your site.
  • YAML Validator — Paste a Docker Compose file, Kubernetes manifest, GitHub Actions workflow or any YAML to pinpoint errors, catch common pitfalls and get a cleanly formatted version.
  • Kubernetes YAML Generator — Fill in your app’s name, image and port and get production-ready Kubernetes YAML: a Deployment with probes, resource limits and a hardened security context, plus the Service, Ingress with TLS, ConfigMap, Secret and HorizontalPodAutoscaler you tick — in one file ready for kubectl apply.

Perguntas frequentes

Como faço para testar uma configuração do Nginx antes de recarregá-la?
Execute o comando `sudo nginx -t`. Ele verifica a sintaxe e os caminhos dos arquivos e exibe a linha em que ocorreu qualquer erro. Só atualize (com o comando `sudo systemctl reload nginx`) quando aparecer “syntax is ok” e “test is successful”.
Como faço para que um aplicativo em React ou Vue continue funcionando quando a página é atualizada?
Usa o cenário SPA. Ele adiciona `try_files $uri $uri/ /index.html;`, então qualquer caminho desconhecido é respondido com `index.html` e o roteador do lado do cliente assume o controle.
Para onde vai o `limit_req_zone`?
O `limit_req_zone` precisa estar no contexto `http` (por exemplo, no arquivo `/etc/nginx/nginx.conf` ou no início de um arquivo incluído ali), e não dentro do `server`. O gerador coloca isso no início do arquivo com um comentário; os arquivos da diretória `sites-enabled` são incluídos no `http` por padrão.
Devo ativar o HSTS?
Isso só funciona se o HTTPS estiver ativo no domínio e em todos os subdomínios que você incluir. Os navegadores lembram do HSTS pelo período definido em “max-age”; portanto, se o certificado estiver inválido, o site fica inacessível. Comece com um “max-age” curto.
Posso instalar o Gerador de configuração do Nginx como um aplicativo da web e usá-lo offline?
Sim. O Gerador de configuração do Nginx é um aplicativo da web instalável (PWA) — instalado a partir do seu navegador, não baixado de uma loja de aplicativos. Clique em “Instalar aplicativo” na parte superior desta página no Chrome ou no Edge (Windows, macOS, Linux, ChromeOS) ou, no Android, use “Compartilhar” → “Adicionar à tela inicial” no iPhone e no iPad, ou “Arquivo” → “Adicionar ao Dock” no Safari 17+ em um Mac. Em seguida, ela se abre em uma janela própria com seu próprio ícone e, como é executada inteiramente no seu navegador, continua funcionando offline. O Firefox no desktop não permite a instalação de aplicativos da web. Como funciona a instalação.

Ferramentas relacionadas