[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-21 02:32:58

This commit is contained in:
srvproxy001.itguys.com.br 2025-09-21 02:32:58 -03:00
parent cac9100483
commit 37bd04a164
1 changed files with 0 additions and 143 deletions

View File

@ -1,143 +0,0 @@
# ARQUIVO: /etc/nginx/sites-available/dns-primario.itguys.com.br.conf
# OBJETIVO: Atuar como um proxy reverso seguro para a aplicação em 172.16.254.252:53443,
# com redirecionamento de HTTP para HTTPS e uma estratégia de cache híbrida
# para arquivos estáticos.
#
# -------------------------------------------------------------------------------------
# EXPLICAÇÕES E MELHORIAS APLICADAS
# -------------------------------------------------------------------------------------
#
# 1. SEGURANÇA (SECURITY HARDENING):
# - [CRÍTICO] `proxy_ssl_verify`: A diretiva `proxy_ssl_verify off;` foi removida.
# Desativar a verificação do certificado SSL do backend é uma FALHA DE SEGURANÇA,
# pois permite ataques "Man-in-the-Middle" (MITM) entre o NGINX e sua aplicação.
# A solução correta é fazer o NGINX confiar no certificado do backend. Se o
# backend usa um certificado autoassinado, você deve usar a diretiva
# `proxy_ssl_trusted_certificate` para apontar para o certificado CA ou o
# próprio certificado público do backend.
# - Cabeçalhos de Segurança: Adicionados cabeçalhos HTTP para fortalecer a
# segurança do lado do cliente (HSTS, X-Frame-Options, X-Content-Type-Options).
# O HSTS (Strict-Transport-Security) força o navegador a usar apenas HTTPS,
# prevenindo ataques de downgrade.
#
# 2. OTIMIZAÇÃO DE DESEMPENHO:
# - Headers de WebSocket Condicionais: As diretivas `Upgrade` e `Connection`
# são específicas para o protocolo WebSocket. Na sua configuração original, elas
# eram enviadas em TODAS as requisições, o que é desnecessário. A nova
# configuração as aplica apenas quando o cliente solicita uma atualização
# para WebSocket, tornando a comunicação mais limpa.
# - Cache de Navegador: Adicionada a diretiva `expires` para os arquivos estáticos.
# Isso instrui o navegador do usuário a armazenar esses arquivos localmente
# por um período, reduzindo o número de requisições ao seu servidor.
# - Redução de I/O de Logs: Para o bloco de arquivos estáticos, as diretivas
# `access_log off;` e `log_not_found off;` foram adicionadas para evitar
# escrever logs desnecessários e poupar recursos de disco.
#
# 3. ESTRUTURA E BOAS PRÁTICAS:
# - Bloco HTTP Simplificado: O bloco de redirecionamento (porta 80) foi simplificado
# para usar a diretiva `return` diretamente no contexto `server`, eliminando
# a necessidade de um bloco `location` para essa única tarefa.
# - Ordem das Localizações: Embora o NGINX processe a localização por regex (`~*`)
# primeiro, a ordem no arquivo foi ajustada para maior clareza lógica, colocando
# a localização mais específica (estáticos) primeiro e a geral (`/`) depois.
# - Comentários de Referência: Adicionados comentários como `` para
# facilitar a referência cruzada entre as explicações no topo e os blocos de
# código correspondentes.
#
# -------------------------------------------------------------------------------------
# --- Bloco 1: Redirecionamento HTTP para HTTPS ---
# Redireciona de forma permanente (301) todo o tráfego da porta 80 para a porta 443 (HTTPS).
server {
listen 80;
listen [::]:80;
server_name dns-primario.itguys.com.br;
# Responde diretamente com o redirecionamento, sem processar location. É mais eficiente.
return 301 https://$host$request_uri;
}
# --- Bloco 2: Servidor Principal HTTPS ---
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name dns-primario.itguys.com.br;
# --- Configurações de SSL/TLS ---
# O Certbot irá gerenciar estas linhas. Mantenha-as comentadas se usar o Certbot.
# ssl_certificate /etc/letsencrypt/live/ns1.itguys.com.br/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/ns1.itguys.com.br/privkey.pem;
# include /etc/nginx/snippets/ssl_params.conf; # Recomendado: Um snippet com parâmetros de segurança SSL
# --- Configurações de Log ---
access_log /var/log/nginx/access.log detailed_proxy;
error_log /var/log/nginx/error.log warn; # Alterado para 'warn' para evitar logs excessivamente verbosos.
# --- Cabeçalhos de Segurança ---
# Força o navegador a usar HTTPS por 1 ano, incluindo subdomínios.
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# Previne clickjacking.
add_header X-Frame-Options "SAMEORIGIN" always;
# Previne ataques de "MIME-sniffing".
add_header X-Content-Type-Options "nosniff" always;
# --- Inclusão de Snippets Personalizados ---
include /etc/nginx/snippets/custom_errors.conf;
include /etc/nginx/snippets/global_robots.conf;
include /etc/nginx/snippets/internal_networks.conf;
# --- Estratégia de Cache Híbrida ---
# Define a zona de cache a ser usada.
proxy_cache zabbix_cache;
# Adiciona um cabeçalho para depuração, mostrando se o cache foi HIT, MISS, etc.
add_header X-Proxy-Cache $upstream_cache_status;
# REGRA GERAL: Por padrão, não usar o cache. O cache será ativado em blocos `location` específicos.
proxy_no_cache 1;
proxy_cache_bypass 1;
# --- Cabeçalhos de Proxy Globais ---
# Estes cabeçalhos serão herdados por todos os blocos `location`.
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;
proxy_http_version 1.1;
# --- Localização para Arquivos Estáticos (CACHE ATIVADO) ---
# location ~* \.(css|js|jpg|jpeg|gif|png|ico|svg|webp|ttf|woff2)$ {
# Desativa o log de acesso e de erros para "arquivo não encontrado", reduzindo I/O de disco.
access_log off;
log_not_found off;
# Ativa o cache para esta localização específica.
proxy_no_cache 0;
proxy_cache_bypass 0;
proxy_cache_valid 200 60m; # Cacheia respostas 200 por 60 minutos.
# Instrui o navegador do cliente a cachear o arquivo por 1 mês.
expires 1M;
proxy_pass https://172.16.254.252:53443;
}
# --- Localização Principal (SEM CACHE) ---
# Captura todas as outras requisições.
location / {
# O cache permanece desativado por herança das diretivas no nível `server`.
# # A linha `proxy_ssl_verify off;` foi REMOVIDA.
# Se o seu backend usa um certificado autoassinado, DESCOMENTE e ajuste a linha abaixo:
# proxy_ssl_trusted_certificate /caminho/para/certificado_do_backend.pem;
# Isso garante que o NGINX confie no seu backend, prevenindo ataques MITM.
proxy_ssl_server_name on; # Importante para que o NGINX envie o SNI para o backend.
# --- Tratamento Condicional para WebSockets ---
# # Somente envia os cabeçalhos de Upgrade se o cliente os solicitar.
if ($http_upgrade = "websocket") {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
proxy_pass https://172.16.254.252:53443;
}
}