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

  • Gerador de VirtualHost Apache — Gere uma configuração completa de virtual host do Apache para o seu domínio: site estático, WordPress, PHP-FPM ou proxy reverso para um app Node ou Python.
  • Gerador de Caddyfile — O Caddy obtém certificados HTTPS automaticamente, então você só descreve o seu site.
  • Validador YAML — Cole um arquivo Docker Compose, manifesto Kubernetes, workflow do GitHub Actions ou qualquer YAML para localizar erros, evitar armadilhas comuns e obter uma versão bem formatada.
  • Gerador de YAML Kubernetes — Preencha o nome, a imagem e a porta do seu app e receba YAML do Kubernetes pronto para produção: um Deployment com probes, limites de recursos e contexto de segurança reforçado, além do Service, do Ingress com TLS, do ConfigMap, do Secret e do HorizontalPodAutoscaler que você marcar, tudo em um arquivo pronto para 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