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.
