EQVPS

Como configurar um proxy reverso nginx com HTTPS

Coloque um domínio limpo e HTTPS automático na frente de qualquer app que escute em uma porta local. Dois caminhos: nginx com Certbot, ou Caddy para TLS automático em uma linha. Passo a passo, com a configuração pronta para copiar.

A maioria dos apps auto-hospedados escuta em uma porta local como 127.0.0.1:3000 e fala HTTP simples. Um proxy reverso fica na frente nas portas 80/443, encerra o HTTPS com um certificado de verdade e encaminha o tráfego para essa porta local — dando um https://app.yourdomain.com limpo e permitindo rodar vários apps atrás de um único IP. Aqui estão os dois caminhos comuns.

Pré-requisitos

Opção A — Caddy (HTTPS automático, uma linha)

sudo apt install -y caddy
echo 'app.yourdomain.com { reverse_proxy 127.0.0.1:3000 }' | sudo tee /etc/caddy/Caddyfile
sudo systemctl restart caddy

É só isso — o Caddy obtém um certificado Let's Encrypt para o domínio e o renova automaticamente.

Opção B — nginx + Certbot

sudo apt install -y nginx certbot python3-certbot-nginx

Crie /etc/nginx/sites-available/app:

server {
    listen 80;
    server_name app.yourdomain.com;
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Ative-o e adicione HTTPS:

sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d app.yourdomain.com

O Certbot edita a configuração para servir HTTPS e configura a renovação automática.

Avisos honestos

Próximos passos

O proxy reverso é justamente o que permite a um único servidor servir muitas coisas — veja auto-hospedar vários serviços atrás de um único IP. Roda o app em um contêiner? Comece por como instalar o Docker. Para que o próprio app sobreviva a reinícios e quedas, veja como criar um serviço systemd.

Perguntas frequentes

O que é um proxy reverso e por que preciso dele?

Seu aplicativo costuma escutar em uma porta local como 127.0.0.1:3000. O proxy reverso fica na frente nas portas 80/443, encerra o HTTPS e encaminha as requisições para essa porta local. Ele te dá um domínio limpo, um certificado TLS válido e a capacidade de rodar vários apps atrás de um único IP — sem que o app precise cuidar de nada disso sozinho.

nginx ou Caddy — qual escolher?

Caddy é o caminho mais rápido: obtém e renova certificados Let's Encrypt automaticamente, e um proxy HTTPS funcional é uma linha de configuração. nginx é mais conhecido e flexível, mas para o TLS você adiciona o Certbot. Se quer HTTPS com o mínimo de trabalho, use Caddy; se já conhece o nginx ou quer seus recursos, use nginx.

Preciso de um domínio?

Para um certificado HTTPS confiável, sim — o Let's Encrypt emite certificados para nomes de domínio, não para IPs cruas. Aponte um registro A para o IP do seu servidor, aguarde a propagação de DNS, e o proxy conseguirá obter um certificado para esse nome.

Quais portas precisam estar abertas?

80 e 443 de entrada. A porta 80 é usada para o desafio inicial do certificado e o redirecionamento para HTTPS; a 443 serve o tráfego criptografado. Abra ambas no seu firewall (veja o guia do UFW) e garanta que nada mais já as esteja ocupando.

Por que a emissão do certificado falha?

Quase sempre DNS ou portas. O registro A do domínio precisa apontar para este servidor e estar propagado, e as portas 80/443 alcançáveis (abertas no firewall, não bloqueadas mais acima). Corrija essas duas coisas e a emissão passa; tanto o Caddy quanto o Certbot tentam de novo.

Comentários

Nenhum comentário ainda. Seja o primeiro.

Deixe um comentário

Os comentários são moderados antes de aparecerem.