Pular para o conteúdo
ToolMug

Gerador de Configuração do Nginx

Informe seu domínio, escolha o tipo de site e marque os recursos que precisa para obter uma configuração de servidor nginx pronta para uso. Cobre proxy reverso (aplicações Node.js, Python, Java), sites estáticos, aplicações de página única (React, Vue) e PHP, com redirecionamentos de HTTP para HTTPS e para www, WebSocket, gzip e cache de arquivos estáticos.

Roda no seu navegador — nada do que você digita é enviado

HTTPS
Extras

0 mantém o padrão do nginx de 1 MB.

Obtenha o certificado primeiro, por exemplo: certbot certonly --webroot -w /var/www/letsencrypt -d example.com -d www.example.com. Depois execute nginx -t e recarregue o nginx.

Como usar

  1. Informe o domínio e escolha o tipo de site — um endereço de upstream para um proxy reverso, ou a raiz do site para os demais.
  2. Marque HTTPS, HTTP/2, HSTS, o redirecionamento para www, gzip, cache e cabeçalhos de segurança conforme precisar.
  3. Copie ou baixe a configuração para /etc/nginx/conf.d/, execute nginx -t e recarregue o nginx.

Opções explicadas

Proxy reverso
Redireciona para o endereço de upstream e passa Host, X-Real-IP, X-Forwarded-For e X-Forwarded-Proto, então o back-end vê o IP e o esquema reais do visitante.
Aplicação de página única
Caminhos desconhecidos recorrem ao index.html, então roteadores em modo histórico (React Router, Vue Router) não retornam 404 ao recarregar.
HTTPS
Os caminhos do certificado seguem os padrões do certbot (Let's Encrypt), e as requisições HTTP recebem um redirecionamento 301 para HTTPS. O HTTP/2 usa a forma listen 443 ssl http2, que funciona em qualquer versão do nginx.
HSTS
Instrui os navegadores a usar somente HTTPS para o domínio e todos os seus subdomínios por um ano. Garanta primeiro que todo subdomínio suporte HTTPS, ou eles ficarão inacessíveis.

Exemplo: aplicativo de página única com HTTPS e www

Com o domínio example.com, Aplicativo de página única, HTTPS, HTTP/2 e Também responder por www. e redirecioná-lo marcados (e Compressão Gzip, Cabeçalhos de segurança e Cache longo para arquivos estáticos desativados para manter o exemplo curto), o gerador escreve três blocos server:

  1. A porta 80 responde pelos dois nomes, mantém /.well-known/acme-challenge/ acessível para a renovação do certificado e envia todo o resto para https://example.com$request_uri com um 301.
  2. A porta 443 de www.example.com usa o mesmo certificado e retorna um 301 para o domínio sem www.
  3. A porta 443 de example.com serve o site:
    root /var/www/example.com;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }

Os dois blocos HTTPS apontam para /etc/letsencrypt/live/example.com/fullchain.pem e privkey.pem, permitem TLS 1.2 e 1.3 e usam um cache de sessão compartilhado de 10 MB com tempo limite de sessão de um dia. A linha try_files é o que faz um recarregamento em uma rota do lado do cliente, como /settings, retornar o aplicativo em vez de um 404.

Perguntas frequentes

Por que o nginx -t avisa que o parâmetro http2 está obsoleto?

Desde o nginx 1.25.1, a diretiva separada http2 on; é a preferida, mas a versão 1.24 — que vem com o Ubuntu 24.04 e outras distribuições — não a entende. A forma listen ... http2 funciona em qualquer lugar; versões mais novas só exibem um aviso.

O certificado precisa incluir o www?

Sim, quando o redirecionamento para www está ativado. Solicite os dois nomes, por exemplo certbot -d example.com -d www.example.com.

Os uploads falham com 413 Request Entity Too Large?

O nginx permite por padrão um corpo de requisição de 1 MB. Defina o Tamanho máximo de upload conforme necessário, por exemplo 100.

Conexões WebSocket falham através do proxy?

O proxy precisa repassar os cabeçalhos Upgrade e Connection. Marcar Suporte a WebSocket os adiciona e aumenta o tempo limite de leitura para uma hora.

Privacidade

Esta ferramenta funciona inteiramente no seu navegador. Seus arquivos e textos são processados no seu dispositivo e nunca são enviados aos nossos servidores.

Ferramentas relacionadas