[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-21 02:32:58
This commit is contained in:
parent
cac9100483
commit
37bd04a164
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue