diff --git a/nginx/sites-available/telefonia.itguys.com.br.conf b/nginx/sites-available/telefonia.itguys.com.br.conf index a9c5a81..188f522 100644 --- a/nginx/sites-available/telefonia.itguys.com.br.conf +++ b/nginx/sites-available/telefonia.itguys.com.br.conf @@ -1,57 +1,64 @@ -# Ficheiro: /etc/nginx/sites-available/billing.itguys.com.br.conf +# Ficheiro: /etc/nginx/sites-available/telefonia.itguys.com.br.conf +# +# Configuração de Proxy Reverso OTIMIZADA para a interface web do MagnusBilling. +# Esta versão usa snippets para modularidade, inclui suporte a WebSockets e +# está restrita à rede interna. -# Bloco para redirecionar todo o tráfego HTTP para HTTPS +# ============================================================================== +# BLOCO HTTP: Redirecionar para HTTPS +# ============================================================================== server { - if ($host = telefonia.itguys.com.br) { - return 301 https://$host$request_uri; - } # managed by Certbot - - listen 80; listen [::]:80; server_name telefonia.itguys.com.br; - # Regra especial para a validação do Let's Encrypt (para que funcione mesmo com a trava de rede) + # Permite a validação do Let's Encrypt, que acontece na porta 80. location /.well-known/acme-challenge/ { root /var/www/html; } + # Redireciona todo o outro tráfego para a versão segura. location / { return 301 https://$host$request_uri; } - - } -# Bloco principal para o site HTTPS +# ============================================================================== +# BLOCO HTTPS: O Coração da nossa Configuração +# ============================================================================== server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name telefonia.itguys.com.br; - include /etc/nginx/snippets/global_robots.conf; - # O Certbot vai gerir estas linhas - # ssl_certificate /etc/letsencrypt/live/billing.itguys.com.br/fullchain.pem; - # ssl_certificate_key /etc/letsencrypt/live/billing.itguys.com.br/privkey.pem; - # --- A TRAVA DE SEGURANÇA MAIS IMPORTANTE --- - # Só permite o acesso a partir das suas redes internas definidas. + # --- Certificados e Segurança SSL --- + ssl_certificate /etc/letsencrypt/live/telefonia.itguys.com.br/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/telefonia.itguys.com.br/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/telefonia.itguys.com.br/fullchain.pem; + # Inclui o nosso "kit" de segurança SSL com cifras modernas e cabeçalhos. + include /etc/nginx/snippets/ssl_params.conf; + + # --- Políticas de Acesso e Logs --- + # A TRAVA DE SEGURANÇA: Restringe o acesso apenas às suas redes internas. include /etc/nginx/conf.d/internal_networks.conf; - + # Bloqueia a indexação por motores de busca. + include /etc/nginx/snippets/global_robots.conf; + # Usa o nosso formato de log JSON detalhado. access_log /var/log/nginx/access.log detailed_proxy; error_log /var/log/nginx/error.log; - + + # --- Rota Principal para a Aplicação --- + # Como a interface do MagnusBilling é totalmente dinâmica, não aplicamos + # nenhuma regra de cache para garantir que os dados estejam sempre atualizados. location / { - # Endereço do seu servidor MagnusBilling. Assumindo que a interface web corre na porta 80. - # Se for outra porta ou HTTPS, ajuste aqui. + # Inclui os cabeçalhos de proxy padrão (Host, X-Real-IP, etc.). + include /etc/nginx/snippets/proxy_params.conf; + + # Inclui os parâmetros para WebSockets, que podem ser necessários + # para atualizações em tempo real na interface. + include /etc/nginx/snippets/websocket_params.conf; + + # Encaminha o tráfego para o seu servidor MagnusBilling. proxy_pass http://172.16.254.130; - - # Cabeçalhos essenciais para que a aplicação funcione corretamente atrás de um proxy - 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; } - - ssl_certificate /etc/letsencrypt/live/telefonia.itguys.com.br/fullchain.pem; # managed by Certbot - ssl_certificate_key /etc/letsencrypt/live/telefonia.itguys.com.br/privkey.pem; # managed by Certbot }