diff --git a/nginx/sites-available/ferreirareal.com.br.conf b/nginx/sites-available/ferreirareal.com.br.conf new file mode 100644 index 0000000..60aa36e --- /dev/null +++ b/nginx/sites-available/ferreirareal.com.br.conf @@ -0,0 +1,86 @@ +# Ficheiro: /etc/nginx/sites-available/ferreirareal.com.br.conf +# +# Configuração de Proxy Reverso OTIMIZADA com redirecionamento canónico +# para o site www.ferreirareal.com.br. Esta versão é pública e usa snippets para +# a máxima consistência e performance. + +# ============================================================================== +# BLOCO 1: Redirecionar todo o tráfego da porta 80 para a versão segura COM WWW +# ============================================================================== +server { + listen 80; + listen [::]:80; + # Apanha ambos os domínios, com e sem 'www'. + server_name ferreirareal.com.br www.ferreirareal.com.br; + + # Permite a validação do Let's Encrypt. + location /.well-known/acme-challenge/ { + root /var/www/html; + } + + # Redireciona todo o outro tráfego para a URL final e correta (com www). + location / { + return 301 https://www.ferreirareal.com.br$request_uri; + } +} + +# ============================================================================== +# BLOCO 2: Redirecionar o tráfego HTTPS SEM WWW para a versão COM WWW +# ============================================================================== +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + # Apanha APENAS o domínio sem 'www'. + server_name ferreirareal.com.br; + + # Envia um redirecionamento permanente para a versão canónica com 'www'. + return 301 https://www.ferreirareal.com.br$request_uri; +} + +# ============================================================================== +# BLOCO 3: O SERVIDOR PRINCIPAL E CANÓNICO (HTTPS COM WWW) +# ============================================================================== +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + # Apanha o domínio canónico com 'www'. + server_name www.ferreirareal.com.br; + + # 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 --- + # NÃO incluímos a trava de rede interna nem o robots_block_all.conf. + # O backend deve gerir o seu próprio robots.txt permissivo. + access_log /var/log/nginx/access.log detailed_proxy; + error_log /var/log/nginx/error.log; + + # --- ESTRATÉGIA DE CACHE HÍBRIDA --- + proxy_cache static_cache; # Usa a nossa zona de cache para ficheiros estáticos. + add_header X-Proxy-Cache $upstream_cache_status; + # Regra geral: NÃO cachear nada por defeito. + proxy_no_cache 1; + proxy_cache_bypass 1; + # Inclui os nossos cabeçalhos de proxy padrão. + include /etc/nginx/snippets/proxy_params.conf; + + # --- REGRAS DE ROTEAMENTO (LOCATIONS) --- + + # 1. Rota para Ficheiros Estáticos (Cache Agressivo) + location ~* \.(?:css|js|mjs|svg|gif|png|jpg|jpeg|ico|wasm|woff2?|ttf|eot)$ { + # Usa o nosso snippet de cache mais agressivo para a máxima performance. + include /etc/nginx/snippets/cache_static_assets.conf; + proxy_pass http://172.16.12.5:80; + } + + # 2. Rota Principal para a Aplicação (Cache Curto) + # Apanha todo o resto do tráfego (páginas HTML, APIs, etc.). + location / { + # Ativa o cache, mas por um período curto (5 minutos). + proxy_no_cache 0; + proxy_cache_bypass 0; + proxy_cache_valid 200 5m; + + proxy_pass http://172.16.12.5:80; + } +}