diff --git a/nginx/sites-available/business.itguys.com.br.conf b/nginx/sites-available/business.itguys.com.br.conf deleted file mode 100644 index 13957c7..0000000 --- a/nginx/sites-available/business.itguys.com.br.conf +++ /dev/null @@ -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 "; rel=preconnect" always; - # Instruí o navegador a pré-carregar o CSS de ícones com alta prioridade. - add_header Link "; 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; - } -}