1001Ferramentas
🌐 Dev

Gerador de NGINX server block

Monta um bloco server do NGINX: server_name, listen, root, index, location / try_files, gzip e logs. Configuração inicial pronta.

Bloco server do nginx para site estático

Servidor novo, arquivos já em /var/www, e falta escrever o bloco que o nginx vai ler. É sempre a mesma estrutura, mas na hora falta um ponto e vírgula ou o try_files sai errado. Preencha server_name, porta, root e index, decida se quer gzip, e o bloco aparece pronto com access_log, error_log e um location raiz. O botão Copiar joga tudo na área de transferência.

Um detalhe da diretiva gzip: o nginx sempre comprime text/html, por isso esse tipo não aparece em gzip_types e não adianta acrescentar. A lista serve para os demais. E preste atenção no JavaScript: a saída lista application/javascript, mas dependendo da versão o nginx serve .js como text/javascript, que fica de fora da lista. Confira com curl -H "Accept-Encoding: gzip" -I e ajuste os tipos.

Salve em /etc/nginx/sites-available com link simbólico em sites-enabled (Debian e Ubuntu) ou direto em /etc/nginx/conf.d/seu-site.conf, e rode nginx -t antes de recarregar. O try_files gerado termina em =404, o certo para site estático; em SPA com rota no cliente, troque o =404 por /index.html. Não sai nada de TLS aqui: digitar 443 ssl no campo listen gera um bloco sem ssl_certificate, e o nginx -t reprova.

Perguntas frequentes

Serve para um site em React ou Vue?
Serve, com uma alteração: no location raiz, troque o =404 do try_files por /index.html, senão qualquer rota aberta direto pela URL devolve 404.
Como coloco HTTPS nessa configuração?
Gere o bloco na porta 80, deixe funcionando e rode certbot --nginx. Ele mesmo insere o listen 443 ssl, os caminhos dos certificados e o redirect da porta 80.
Posso deixar o domínio com e sem www no mesmo server_name?
Pode, e os dois vão servir o mesmo conteúdo. Só que para SEO o recomendado é um redirect 301 de uma versão para a outra, e esse segundo bloco a ferramenta não gera.

Ferramentas Relacionadas