[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-17 10:10:45
This commit is contained in:
parent
8a324d5ef0
commit
d7ae60a68a
|
|
@ -1,117 +1,99 @@
|
|||
# Ficheiro: /etc/nginx/sites-available/itguys.com.br.conf
|
||||
#
|
||||
# Configuração de Proxy Reverso com Cache Inteligente e Otimizado,
|
||||
# para um site maioritariamente estático com um formulário de contacto dinâmico.
|
||||
# Configuração de Proxy Reverso OTIMIZADA com redirecionamento canónico
|
||||
# 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 {
|
||||
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;
|
||||
|
||||
# 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/ {
|
||||
root /var/www/html;
|
||||
}
|
||||
|
||||
# Para todas as outras requisições, envia um redirecionamento permanente (301)
|
||||
# para a versão segura (https) e com 'www'.
|
||||
# Redireciona todo o outro tráfego para a URL final e correta.
|
||||
location / {
|
||||
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 {
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
|
||||
# Define ambos os nomes de servidor para que o Nginx use o certificado correto.
|
||||
# O primeiro nome é considerado o principal.
|
||||
server_name www.itguys.com.br itguys.com.br;
|
||||
include /etc/nginx/snippets/global_robots.conf;
|
||||
# --- Certificados SSL (Geridos pelo Certbot) ---
|
||||
# O Certbot irá preencher estas linhas.
|
||||
# Apanha APENAS o domínio sem 'www'.
|
||||
server_name itguys.com.br;
|
||||
|
||||
# Usa o mesmo certificado, pois ele é válido para ambos os nomes.
|
||||
ssl_certificate /etc/letsencrypt/live/www.itguys.com.br/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/www.itguys.com.br/privkey.pem;
|
||||
|
||||
# --- Cabeçalhos de Segurança Padrão ---
|
||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
# Envia um redirecionamento permanente para a versão canónica com 'www'.
|
||||
return 301 https://www.itguys.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 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 ---
|
||||
# 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;
|
||||
error_log /var/log/nginx/error.log;
|
||||
|
||||
# --- ESTRATÉGIA DE CACHE HÍBRIDA E SEGURA ---
|
||||
# Usa a nossa zona de cache pública.
|
||||
# --- ESTRATÉGIA DE CACHE HÍBRIDA ---
|
||||
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;
|
||||
# Regra geral: NÃO cachear nada por defeito.
|
||||
proxy_no_cache 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 ---
|
||||
# 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;
|
||||
# --- REGRAS DE ROTEAMENTO (LOCATIONS) ---
|
||||
|
||||
# --- LOCALIZAÇÃO PARA O FORMULÁRIO DE CONTACTO (SEM CACHE) ---
|
||||
# O '=' indica uma correspondência exata da URI, o que é mais eficiente.
|
||||
# Localização para o formulário (sem cache)
|
||||
location = /php/enviar.php {
|
||||
# Desativa o cache completamente para esta localização.
|
||||
proxy_no_cache 1;
|
||||
proxy_cache_bypass 1;
|
||||
|
||||
proxy_pass http://172.16.12.17:80;
|
||||
}
|
||||
|
||||
# --- LOCALIZAÇÃO PARA FICHEIROS ESTÁTICOS (CACHE LONGO) ---
|
||||
# Esta regra apanha os ficheiros que são seguros para cachear.
|
||||
# Localização para ficheiros estáticos (cache longo)
|
||||
location ~* \.(jpg|jpeg|gif|png|webp|svg|css|js|ico|woff2|ttf|json)$ {
|
||||
# Ativa o cache para estes ficheiros.
|
||||
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;
|
||||
|
||||
include /etc/nginx/snippets/cache_aggressive_static.conf; # Usa o nosso cache agressivo
|
||||
proxy_pass http://172.16.12.17:80;
|
||||
}
|
||||
|
||||
# --- LOCALIZAÇÃO PARA PÁGINAS HTML ESTÁTICAS (CACHE LONGO) ---
|
||||
# Esta regra apanha especificamente as páginas Sobre.html e Serviços.html.
|
||||
# Localização para páginas HTML estáticas (cache longo)
|
||||
location ~* ^/(Sobre|Serviços)\.html$ {
|
||||
# Ativa o cache para estas páginas.
|
||||
proxy_no_cache 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_pass http://172.16.12.17:80;
|
||||
}
|
||||
|
||||
# --- LOCALIZAÇÃO PRINCIPAL PARA O RESTO DO SITE (CACHE CURTO) ---
|
||||
# Apanha as páginas HTML restantes (como a index.html).
|
||||
# Localização principal para o resto do site (cache curto)
|
||||
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_cache_bypass 0;
|
||||
proxy_cache_valid 200 5m;
|
||||
|
||||
proxy_pass http://172.16.12.17:80;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue