diff --git a/nginx/sites-available/dns-primario.itguys.com.br.conf b/nginx/sites-available/dns-primario.itguys.com.br.conf new file mode 100644 index 0000000..469247f --- /dev/null +++ b/nginx/sites-available/dns-primario.itguys.com.br.conf @@ -0,0 +1,84 @@ +# ARQUIVO: /etc/nginx/sites-available/dns-primario.itguys.com.br.conf +# OBJETIVO: Proxy reverso seguro e otimizado para a interface web do servidor +# DNS Technitium, com suporte total a WebSockets. +# +# ------------------------------------------------------------------------------------- +# EXPLICAÇÕES E MELHORIAS (VERSÃO FINAL - TECHNITIUM) +# ------------------------------------------------------------------------------------- +# +# 1. SUPORTE ESPECÍFICO AO TECHNITIUM DNS: +# - A interface do Technitium requer uma conexão WebSocket no caminho `/api/socket/` +# para funcionar corretamente (logs, estatísticas, etc.). +# - Foi criado um bloco `location /api/socket/` dedicado para manipular essas +# conexões, utilizando seu snippet `websocket_params.conf`. +# +# 2. REMOÇÃO DO CACHE DE PROXY: +# - A interface do Technitium é altamente dinâmica e em tempo real. Armazenar +# seu conteúdo em cache (proxy_cache) é contraproducente e pode causar +# problemas, mostrando dados desatualizados ou quebrando a funcionalidade. +# - Todas as diretivas de `proxy_cache` foram removidas, pois para uma interface +# administrativa como esta, a consistência dos dados é muito mais importante +# do que o cache a nível de servidor. +# +# 3. ARQUITETURA MODULAR CORRETA: +# - A configuração utiliza exclusivamente seus snippets (`ssl_params.conf`, +# `proxy_params.conf`, `websocket_params.conf`), garantindo consistência, +# segurança e fácil manutenção. Não há mais diretivas manuais duplicadas. +# +# ------------------------------------------------------------------------------------- + +# --- Bloco 1: Redirecionamento HTTP para HTTPS --- +server { + listen 80; + listen [::]:80; + server_name dns-primario.itguys.com.br; + return 301 https://$host$request_uri; +} + +# --- Bloco 2: Servidor Principal HTTPS para o Technitium DNS --- +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + server_name dns-primario.itguys.com.br; + + # --- Configurações de SSL e Segurança --- + # ssl_certificate /etc/letsencrypt/live/dns-primario.itguys.com.br/fullchain.pem; + # ssl_certificate_key /etc/letsencrypt/live/dns-primario.itguys.com.br/privkey.pem; + include /etc/nginx/snippets/ssl_params.conf; + + # --- Configurações de Log --- + access_log /var/log/nginx/access.log detailed_proxy; + error_log /var/log/nginx/error.log warn; + + # --- Inclusão de Snippets Globais --- + include /etc/nginx/snippets/custom_errors.conf; + include /etc/nginx/snippets/global_robots.conf; + include /etc/nginx/snippets/internal_networks.conf; + + # --- Localização Específica para WebSockets do Technitium --- + # Este bloco é processado primeiro e garante que a interface funcione em tempo real. + location /api/socket/ { + # Inclui os cabeçalhos de proxy padrão. + include /etc/nginx/snippets/proxy_params.conf; + # Inclui as configurações OTIMIZADAS para WebSocket. + include /etc/nginx/snippets/websocket_params.conf; + + # Aponta para o backend. + proxy_pass https://172.16.254.252:53443; + } + + # --- Localização Principal para o resto da Interface Web --- + # Captura todas as outras requisições da interface. + location / { + # Inclui os cabeçalhos de proxy padrão. + include /etc/nginx/snippets/proxy_params.conf; + + # [CRÍTICO] Se o seu Technitium usa um certificado autoassinado, + # descomente e ajuste a linha abaixo para evitar erros 502. + # proxy_ssl_trusted_certificate /etc/nginx/certs/technitium.pem; + proxy_ssl_server_name on; + + # Aponta para o backend. + proxy_pass https://172.16.254.252:53443; + } +}