[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-17 10:10:45

This commit is contained in:
srvproxy001.itguys.com.br 2025-09-17 10:10:45 -03:00
parent 8a324d5ef0
commit d7ae60a68a
1 changed files with 37 additions and 55 deletions

View File

@ -1,117 +1,99 @@
# Ficheiro: /etc/nginx/sites-available/itguys.com.br.conf # Ficheiro: /etc/nginx/sites-available/itguys.com.br.conf
# #
# Configuração de Proxy Reverso com Cache Inteligente e Otimizado, # Configuração de Proxy Reverso OTIMIZADA com redirecionamento canónico
# para um site maioritariamente estático com um formulário de contacto dinâmico. # para o site itguys.com.br, resolvendo erros de SSL intermitentes.
# ============================================================================== # ==============================================================================
# BLOCO HTTP: Redirecionar todo o tráfego para a versão segura e canónica (www) # BLOCO 1: Redirecionar todo o tráfego da porta 80 para a versão segura e com WWW
# ============================================================================== # ==============================================================================
server { server {
listen 80; listen 80;
listen [::]:80; listen [::]:80;
# Escuta por ambos os domínios, com e sem 'www', para apanhar todos os pedidos. # Apanha ambos os domínios, com e sem 'www'.
server_name itguys.com.br www.itguys.com.br; server_name itguys.com.br www.itguys.com.br;
# Regra especial para a validação do Let's Encrypt funcionar corretamente. # Permite a validação do Let's Encrypt.
location /.well-known/acme-challenge/ { location /.well-known/acme-challenge/ {
root /var/www/html; root /var/www/html;
} }
# Para todas as outras requisições, envia um redirecionamento permanente (301) # Redireciona todo o outro tráfego para a URL final e correta.
# para a versão segura (https) e com 'www'.
location / { location / {
return 301 https://www.itguys.com.br$request_uri; return 301 https://www.itguys.com.br$request_uri;
} }
} }
# ============================================================================== # ==============================================================================
# BLOCO HTTPS: O Coração da nossa Configuração # BLOCO 2: Redirecionar o tráfego HTTPS sem WWW para a versão com WWW
# ============================================================================== # ==============================================================================
server { server {
listen 443 ssl http2; listen 443 ssl http2;
listen [::]:443 ssl http2; listen [::]:443 ssl http2;
# Apanha APENAS o domínio sem 'www'.
# Define ambos os nomes de servidor para que o Nginx use o certificado correto. server_name itguys.com.br;
# O primeiro nome é considerado o principal.
server_name www.itguys.com.br itguys.com.br; # Usa o mesmo certificado, pois ele é válido para ambos os nomes.
include /etc/nginx/snippets/global_robots.conf;
# --- Certificados SSL (Geridos pelo Certbot) ---
# O Certbot irá preencher estas linhas.
ssl_certificate /etc/letsencrypt/live/www.itguys.com.br/fullchain.pem; ssl_certificate /etc/letsencrypt/live/www.itguys.com.br/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.itguys.com.br/privkey.pem; ssl_certificate_key /etc/letsencrypt/live/www.itguys.com.br/privkey.pem;
# --- Cabeçalhos de Segurança Padrão --- # Envia um redirecionamento permanente para a versão canónica com 'www'.
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; return 301 https://www.itguys.com.br$request_uri;
add_header X-Content-Type-Options "nosniff" always; }
add_header X-Frame-Options "SAMEORIGIN" always;
# ==============================================================================
# BLOCO 3: O SERVIDOR PRINCIPAL E CANÓNICO (HTTPS com WWW)
# ==============================================================================
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
# Apanha APENAS o domínio canónico com 'www'.
server_name www.itguys.com.br;
# --- Certificados e Segurança ---
ssl_certificate /etc/letsencrypt/live/www.itguys.com.br/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.itguys.com.br/privkey.pem;
include /etc/nginx/snippets/ssl_params.conf; # Inclui as nossas definições de segurança SSL
include /etc/nginx/snippets/robots_block_all.conf; # Usa o robots.txt genérico
# --- Configurações de Log --- # --- Configurações de Log ---
# Usa o nosso formato de log JSON detalhado que já configurámos globalmente no nginx.conf.
access_log /var/log/nginx/access.log detailed_proxy; access_log /var/log/nginx/access.log detailed_proxy;
error_log /var/log/nginx/error.log; error_log /var/log/nginx/error.log;
# --- ESTRATÉGIA DE CACHE HÍBRIDA E SEGURA --- # --- ESTRATÉGIA DE CACHE HÍBRIDA ---
# Usa a nossa zona de cache pública.
proxy_cache zabbix_cache; proxy_cache zabbix_cache;
# Adiciona um cabeçalho de depuração para vermos o status do cache.
add_header X-Proxy-Cache $upstream_cache_status; add_header X-Proxy-Cache $upstream_cache_status;
# Regra geral: NÃO cachear nada por defeito.
proxy_no_cache 1; proxy_no_cache 1;
proxy_cache_bypass 1; proxy_cache_bypass 1;
include /etc/nginx/snippets/proxy_params.conf; # Inclui os nossos cabeçalhos de proxy padrão
# --- CABEÇALHOS DE PROXY GLOBAIS --- # --- REGRAS DE ROTEAMENTO (LOCATIONS) ---
# Estes cabeçalhos serão herdados por todas as 'location' abaixo.
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;
# --- LOCALIZAÇÃO PARA O FORMULÁRIO DE CONTACTO (SEM CACHE) --- # Localização para o formulário (sem cache)
# O '=' indica uma correspondência exata da URI, o que é mais eficiente.
location = /php/enviar.php { location = /php/enviar.php {
# Desativa o cache completamente para esta localização.
proxy_no_cache 1; proxy_no_cache 1;
proxy_cache_bypass 1; proxy_cache_bypass 1;
proxy_pass http://172.16.12.17:80; proxy_pass http://172.16.12.17:80;
} }
# --- LOCALIZAÇÃO PARA FICHEIROS ESTÁTICOS (CACHE LONGO) --- # Localização para ficheiros estáticos (cache longo)
# Esta regra apanha os ficheiros que são seguros para cachear.
location ~* \.(jpg|jpeg|gif|png|webp|svg|css|js|ico|woff2|ttf|json)$ { location ~* \.(jpg|jpeg|gif|png|webp|svg|css|js|ico|woff2|ttf|json)$ {
# Ativa o cache para estes ficheiros. include /etc/nginx/snippets/cache_aggressive_static.conf; # Usa o nosso cache agressivo
proxy_no_cache 0;
proxy_cache_bypass 0;
# Define que as respostas válidas (código 200) ficam no cache por 60 minutos.
proxy_cache_valid 200 60m;
# Instrui o NAVEGADOR do cliente a guardar uma cópia por 7 dias.
expires 7d;
proxy_pass http://172.16.12.17:80; proxy_pass http://172.16.12.17:80;
} }
# --- LOCALIZAÇÃO PARA PÁGINAS HTML ESTÁTICAS (CACHE LONGO) --- # Localização para páginas HTML estáticas (cache longo)
# Esta regra apanha especificamente as páginas Sobre.html e Serviços.html.
location ~* ^/(Sobre|Serviços)\.html$ { location ~* ^/(Sobre|Serviços)\.html$ {
# Ativa o cache para estas páginas.
proxy_no_cache 0; proxy_no_cache 0;
proxy_cache_bypass 0; proxy_cache_bypass 0;
# Define um tempo de cache longo (1 hora) para estas páginas que raramente mudam.
proxy_cache_valid 200 1h; proxy_cache_valid 200 1h;
proxy_pass http://172.16.12.17:80; proxy_pass http://172.16.12.17:80;
} }
# --- LOCALIZAÇÃO PRINCIPAL PARA O RESTO DO SITE (CACHE CURTO) --- # Localização principal para o resto do site (cache curto)
# Apanha as páginas HTML restantes (como a index.html).
location / { location / {
# Ativa o cache, mas por um período curto (5 minutos).
# Isto acelera a navegação sem o risco de mostrar conteúdo muito desatualizado.
proxy_no_cache 0; proxy_no_cache 0;
proxy_cache_bypass 0; proxy_cache_bypass 0;
proxy_cache_valid 200 5m; proxy_cache_valid 200 5m;
proxy_pass http://172.16.12.17:80; proxy_pass http://172.16.12.17:80;
} }
} }