From 02d4415ad43391b185a295d6e93a6a7a23410ade Mon Sep 17 00:00:00 2001 From: "srvproxy001.itguys.com.br" Date: Sat, 20 Sep 2025 15:30:35 -0300 Subject: [PATCH] =?UTF-8?q?[Auto-Sync]=20Atualiza=C3=A7=C3=A3o=20das=20con?= =?UTF-8?q?figura=C3=A7=C3=B5es=20em=20srvproxy001.itguys.com.br=20-=20202?= =?UTF-8?q?5-09-20=2015:30:35?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nginx/sites-available/enseg.com.br.conf | 81 +++++++++++-------------- 1 file changed, 35 insertions(+), 46 deletions(-) diff --git a/nginx/sites-available/enseg.com.br.conf b/nginx/sites-available/enseg.com.br.conf index ce90d10..ad28b91 100644 --- a/nginx/sites-available/enseg.com.br.conf +++ b/nginx/sites-available/enseg.com.br.conf @@ -1,41 +1,24 @@ # Ficheiro: /etc/nginx/sites-available/enseg.com.br.conf # -# Configuração de Proxy Reverso OTIMIZADA com redirecionamento canónico -# para o site www.enseg.com.br. Esta versão é pública e usa snippets para -# a máxima consistência e performance. +# Configuração de Proxy Reverso OTIMIZADA para um site WordPress. +# Esta versão usa snippets, redirecionamento canónico e uma estratégia de cache +# segura para a máxima performance e compatibilidade. # ============================================================================== # BLOCO 1: Redirecionar todo o tráfego da porta 80 para a versão segura COM WWW # ============================================================================== server { - if ($host = enseg.com.br) { - return 301 https://$host$request_uri; - } # managed by Certbot - - - if ($host = www.enseg.com.br) { - return 301 https://$host$request_uri; - } # managed by Certbot - - listen 80; listen [::]:80; - # Apanha ambos os domínios, com e sem 'www'. server_name enseg.com.br www.enseg.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.enseg.com.br$request_uri; } - - - - } # ============================================================================== @@ -44,14 +27,14 @@ server { server { listen 443 ssl http2; listen [::]:443 ssl http2; - # Apanha APENAS o domínio sem 'www'. server_name enseg.com.br; - # Envia um redirecionamento permanente para a versão canónica com 'www'. - return 301 https://www.enseg.com.br$request_uri; + # Usa o mesmo certificado, pois ele será válido para ambos os nomes. + ssl_certificate /etc/letsencrypt/live/enseg.com.br/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/enseg.com.br/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/enseg.com.br/fullchain.pem; - ssl_certificate /etc/letsencrypt/live/www.enseg.com.br/fullchain.pem; # managed by Certbot - ssl_certificate_key /etc/letsencrypt/live/www.enseg.com.br/privkey.pem; # managed by Certbot + return 301 https://www.enseg.com.br$request_uri; } # ============================================================================== @@ -60,52 +43,58 @@ server { server { listen 443 ssl http2; listen [::]:443 ssl http2; - # Apanha o domínio canónico com 'www'. server_name www.enseg.com.br; - # Inclui o nosso "kit" de segurança SSL com cifras modernas e cabeçalhos. + # --- Certificados e Segurança SSL --- + ssl_certificate /etc/letsencrypt/live/enseg.com.br/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/enseg.com.br/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/enseg.com.br/fullchain.pem; 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, pois este site é público. - # O backend deve gerir o seu próprio robots.txt permissivo. + # NÃO incluímos a trava de rede interna nem o robots_block_all.conf. + # O backend WordPress 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. + proxy_cache static_cache; 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. + + # --- PARÂMETROS DE PROXY GLOBAIS --- include /etc/nginx/snippets/proxy_params.conf; + # Como o backend é HTTPS, precisamos de dizer ao Nginx para não verificar o certificado interno. + proxy_ssl_verify off; # --- REGRAS DE ROTEAMENTO (LOCATIONS) --- - # 1. Rota para Ficheiros Estáticos (Cache Agressivo) + # 1. Rota para a Administração do WordPress (SEM CACHE) + # Garante que o painel de administração nunca seja cacheado. + location ~ ^/(wp-admin|wp-login\.php) { + proxy_no_cache 1; + proxy_cache_bypass 1; + proxy_pass https://172.16.12.13:443; + } + + # 2. 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; - - # Como o backend é HTTPS, precisamos de dizer ao Nginx para não verificar o certificado interno. - proxy_ssl_verify off; - proxy_pass https://172.16.12.13:80; + include /etc/nginx/snippets/cache_aggressive_static.conf; + proxy_pass https://172.16.12.13:443; } - # 2. Rota Principal para a Aplicação (Cache Curto) - # Apanha todo o resto do tráfego (páginas HTML, APIs, etc.). + # 3. Rota Principal para a Aplicação (CACHE CURTO) + # Apanha todo o resto do tráfego (páginas, posts, 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; - # Como o backend é HTTPS, precisamos de dizer ao Nginx para não verificar o certificado interno. - proxy_ssl_verify off; - proxy_pass https://172.16.12.13:80; + # O WordPress pode usar WebSockets para algumas funcionalidades (ex: editor de blocos). + include /etc/nginx/snippets/websocket_params.conf; + proxy_pass https://172.16.12.13:443; } - - ssl_certificate /etc/letsencrypt/live/www.enseg.com.br/fullchain.pem; # managed by Certbot - ssl_certificate_key /etc/letsencrypt/live/www.enseg.com.br/privkey.pem; # managed by Certbot }