[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-27 17:24:13
This commit is contained in:
parent
053b4215b7
commit
c4d2579e4b
|
|
@ -1,178 +0,0 @@
|
|||
# =================================================================================================
|
||||
# ARQUIVO DE CONFIGURAÇÃO PARA: business.itguys.com.br
|
||||
# AUDITADO E OTIMIZADO POR: Gemini (Especialista NGINX)
|
||||
# DATA DA ALTERAÇÃO: 2025-09-25 09:18
|
||||
#
|
||||
# MOTIVO DA ALTERAÇÃO:
|
||||
# Otimização de performance com base em relatórios do Lighthouse e boas práticas.
|
||||
# A configuração de segurança anterior foi mantida e aprimorada.
|
||||
#
|
||||
# PONTOS CHAVE DA OTIMIZAÇÃO:
|
||||
#
|
||||
# 1. OTIMIZAÇÃO DE CACHE ESTÁTICO (CORRIGE APONTAMENTO DO LIGHTHOUSE):
|
||||
# - Adicionada a diretiva 'proxy_ignore_headers Cache-Control Expires' DENTRO do bloco
|
||||
# de arquivos estáticos. Isso força o NGINX a aplicar a política de cache definida
|
||||
# (expires 30d), ignorando cabeçalhos restritivos que possam vir do backend.
|
||||
#
|
||||
# 2. PRÉ-CONEXÃO E PRÉ-CARREGAMENTO DE RECURSOS (CORRIGE APONTAMENTO DO LIGHTHOUSE):
|
||||
# - Adicionada a diretiva 'add_header Link' para instruir o navegador a realizar
|
||||
# DNS lookup, conexão TCP e handshake TLS com o CDN de ícones antes mesmo de
|
||||
# precisar do recurso, diminuindo a latência percebida.
|
||||
# - Também foi adicionada uma instrução para pré-carregar o CSS principal.
|
||||
#
|
||||
# 3. COMPRESSÃO GZIP HABILITADA:
|
||||
# - Um bloco de configuração para Gzip foi adicionado. Isso reduzirá significativamente
|
||||
# o tamanho de transferência de assets baseados em texto (HTML, CSS, JS, etc.),
|
||||
# acelerando o carregamento para o cliente.
|
||||
#
|
||||
# 4. AJUSTES DE CONEXÃO (KEEPALIVE):
|
||||
# - Adicionadas diretivas 'keepalive_timeout' e 'keepalive_requests' para reutilizar
|
||||
# conexões TCP com os clientes, reduzindo a sobrecarga de handshake para
|
||||
# requisições subsequentes.
|
||||
#
|
||||
# 5. MANUTENÇÃO DA SEGURANÇA:
|
||||
# - Todas as excelentes práticas de segurança do arquivo anterior, como a chave de
|
||||
# cache ciente da sessão e o bypass de cache para usuários logados, foram mantidas.
|
||||
#
|
||||
# =================================================================================================
|
||||
|
||||
# ==============================================================================
|
||||
# BLOCO HTTP: Redirecionar todo o tráfego para HTTPS de forma eficiente
|
||||
# ==============================================================================
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name business.itguys.com.br;
|
||||
|
||||
# Permite a validação do Let's Encrypt.
|
||||
location /.well-known/acme-challenge/ {
|
||||
root /var/www/html;
|
||||
allow all;
|
||||
}
|
||||
|
||||
# Redireciona permanentemente todo o outro tráfego para a versão segura.
|
||||
location / {
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
# BLOCO HTTPS: Configuração principal do Proxy Reverso
|
||||
# ==============================================================================
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
server_name business.itguys.com.br;
|
||||
|
||||
# --- Configurações de SSL/TLS ---
|
||||
ssl_certificate /etc/letsencrypt/live/business.itguys.com.br/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/business.itguys.com.br/privkey.pem;
|
||||
ssl_trusted_certificate /etc/letsencrypt/live/business.itguys.com.br/fullchain.pem;
|
||||
|
||||
# --- Parâmetros de SSL Otimizados e Seguros ---
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
ssl_prefer_server_ciphers on;
|
||||
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
|
||||
ssl_ecdh_curve secp384r1;
|
||||
ssl_session_tickets off;
|
||||
ssl_stapling on;
|
||||
ssl_stapling_verify on;
|
||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
|
||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
add_header X-XSS-Protection "1; mode=block" always;
|
||||
resolver 8.8.8.8 8.8.4.4 valid=300s;
|
||||
resolver_timeout 5s;
|
||||
|
||||
# (REF: PONTO 2) --- Otimização de Carregamento (Preconnect e Preload) ---
|
||||
# Instruí o navegador a se conectar ao CDN de ícones o mais rápido possível.
|
||||
add_header Link "<https://cdn.jsdelivr.net>; rel=preconnect" always;
|
||||
# Instruí o navegador a pré-carregar o CSS de ícones com alta prioridade.
|
||||
add_header Link "<https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css>; rel=preload; as=style" always;
|
||||
|
||||
# Brotli (preferencial para navegadores modernos)
|
||||
brotli on;
|
||||
brotli_comp_level 6;
|
||||
brotli_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
|
||||
|
||||
# (REF: PONTO 3) --- Configurações de Compressão Gzip ---
|
||||
gzip on;
|
||||
gzip_vary on;
|
||||
gzip_proxied any;
|
||||
gzip_comp_level 6;
|
||||
gzip_min_length 1024;
|
||||
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
|
||||
|
||||
# (REF: PONTO 4) --- Otimização de Conexão Keepalive ---
|
||||
keepalive_timeout 75s;
|
||||
keepalive_requests 1000;
|
||||
|
||||
# --- Políticas de Acesso e Logs ---
|
||||
location = /robots.txt {
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
access_log /var/log/nginx/access.log detailed_proxy;
|
||||
error_log /var/log/nginx/error.log warn;
|
||||
|
||||
# --- ESTRATÉGIA DE CACHE SEGURA E RESILIENTE (Mantida e Validada) ---
|
||||
# ATENÇÃO: Substitua 'seu_cookie_de_sessao' pelo nome do cookie da sua aplicação.
|
||||
set $session_cookie_name "seu_cookie_de_sessao";
|
||||
|
||||
proxy_cache business_cache;
|
||||
add_header X-Proxy-Cache $upstream_cache_status;
|
||||
proxy_cache_key "$scheme$request_method$host$request_uri$cookie_$session_cookie_name";
|
||||
proxy_cache_bypass $cookie_$session_cookie_name $http_authorization;
|
||||
proxy_no_cache $cookie_$session_cookie_name $http_authorization;
|
||||
proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
|
||||
proxy_next_upstream_timeout 5s;
|
||||
|
||||
# --- Parâmetros do Proxy ---
|
||||
proxy_set_header Host $http_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;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_read_timeout 90s;
|
||||
|
||||
# --- REGRAS DE ROTEAMENTO (LOCATIONS) ---
|
||||
|
||||
# 1. Rota para Arquivos Estáticos (Cache Agressivo e Otimizado)
|
||||
location ~* \.(?:css|js|mjs|svg|gif|png|jpg|jpeg|ico|webp|wasm|woff2?|ttf|eot)$ {
|
||||
# (REF: PONTO 1)
|
||||
# Ignora cabeçalhos de cache do backend para garantir que a política do NGINX seja aplicada.
|
||||
proxy_ignore_headers Cache-Control Expires;
|
||||
proxy_cache_valid 200 302 60m;
|
||||
proxy_cache_valid any 5m;
|
||||
|
||||
# Cache de navegador.
|
||||
expires 30d;
|
||||
add_header Cache-Control "public";
|
||||
|
||||
proxy_pass https://172.16.121.13;
|
||||
}
|
||||
|
||||
# 2. Rota Principal para a Aplicação (NÃO CACHEAR POR PADRÃO)
|
||||
location / {
|
||||
# Instruções para não cachear conteúdo dinâmico (mantido por segurança).
|
||||
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
||||
add_header Pragma "no-cache";
|
||||
expires 0;
|
||||
|
||||
# Limita os métodos HTTP para maior segurança.
|
||||
limit_except GET HEAD POST {
|
||||
deny all;
|
||||
}
|
||||
|
||||
proxy_pass https://172.16.121.13;
|
||||
}
|
||||
|
||||
# Bloco para carregar páginas de erro personalizadas.
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
location = /50x.html {
|
||||
root /usr/share/nginx/html;
|
||||
internal;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue