Como usar
- 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.
- Marque HTTPS, HTTP/2, HSTS, o redirecionamento para www, gzip, cache e cabeçalhos de segurança conforme precisar.
- 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:
- 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 parahttps://example.com$request_uricom um 301. - A porta 443 de
www.example.comusa o mesmo certificado e retorna um 301 para o domínio sem www. - A porta 443 de
example.comserve 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.