# Ficheiro: /etc/nginx/sites-available/ns2.itguys.com.br.conf # # Configuração de Proxy Reverso OTIMIZADA para a interface web de um servidor DNS (Technitium). # Esta versão usa snippets, inclui suporte a WebSockets e está restrita à rede interna. # ============================================================================== # BLOCO HTTP: Redirecionar para HTTPS # ============================================================================== server { listen 80; listen [::]:80; server_name ns2.itguys.com.br; # Permite a validação do Let's Encrypt, mesmo com a trava de rede. 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 HTTPS: O Coração da nossa Configuração # ============================================================================== server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name ns2.itguys.com.br; # --- Certificados e Segurança SSL --- # O Certbot irá gerir estas linhas. Lembre-se de o executar para este domínio. ssl_certificate /etc/letsencrypt/live/ns2.itguys.com.br/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ns2.itguys.com.br/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/ns2.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; # --- ESTRATÉGIA DE CACHE HÍBRIDA --- # Usa a nossa zona de cache pública. proxy_cache zabbix_cache; add_header X-Proxy-Cache $upstream_cache_status; # Regra geral: NÃO cachear nada por defeito. proxy_no_cache 1; proxy_cache_bypass 1; # --- REGRAS DE ROTEAMENTO (LOCATIONS) --- # 1. Rota para Ficheiros Estáticos (Cache Agressivo) # Apanha a "casca" da aplicação para acelerar o carregamento. location ~* \.(?:css|js|mjs|svg|gif|png|jpg|jpeg|ico|wasm|woff2?|ttf|eot)$ { include /etc/nginx/snippets/proxy_params.conf; include /etc/nginx/snippets/cache_static_assets.conf; # Como o backend é HTTPS, precisamos de dizer ao Nginx para não verificar o certificado interno. proxy_ssl_verify off; proxy_pass https://172.16.254.251:53443; } # 2. Rota Principal para a Aplicação (SEM CACHE, com WebSockets) # Apanha todo o resto do tráfego (a interface, as APIs, etc.). location / { include /etc/nginx/snippets/proxy_params.conf; # Inclui os parâmetros para WebSockets, essenciais para as atualizações em tempo real. include /etc/nginx/snippets/websocket_params.conf; # Como o backend é HTTPS, precisamos de dizer ao Nginx para não verificar o certificado interno. proxy_ssl_verify off; proxy_pass https://172.16.254.251:53443; } }