Skip to content

Configuração de Reverse Proxy Nginx com SSL

Utilizar um Reverse Proxy dedicado na borda da infraestrutura é a forma mais segura e eficiente de expor aplicações conteinerizadas para a internet ou para redes internas corporativas.


1. Por que usar um Reverse Proxy?

  • Terminação SSL centralizada: Você gerencia seus certificados em um único ponto.
  • Ocultação de portas internas: Nenhuma aplicação precisa expor portas aleatórias (como 3000, 5000, 8080) diretamente para fora.
  • WAF e Rate Limiting: Proteção contra ataques de negação de serviço e injeção.

2. Exemplo de Bloco Nginx

Abaixo um modelo padrão e otimizado com cabeçalhos de segurança:

nginx
server {
    listen 80;
    server_name demainfra.tech;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name demainfra.tech;

    ssl_certificate /etc/letsencrypt/live/demainfra.tech/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/demainfra.tech/privkey.pem;

    # Cabeçalhos de Segurança
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "strict-origin-when-cross-origin" always;

    location / {
        proxy_pass http://127.0.0.1:8080;
        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;
    }
}

⚠️ Atenção

Certifique-se de que a porta 8080 do seu container esteja vinculada apenas ao 127.0.0.1:8080 ou comunicando via rede Docker interna (bridge customizada) para evitar acessos diretos contornando o proxy.