[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-15 22:35:09
This commit is contained in:
parent
c3a1bc53ba
commit
6da942224f
|
|
@ -23,100 +23,63 @@ server {
|
|||
server_name webmail.itguys.com.br;
|
||||
|
||||
# --- Certificados SSL ---
|
||||
# As linhas do Let's Encrypt estão comentadas, como pedido.
|
||||
# O Certbot irá descomentá-las e preenchê-las automaticamente.
|
||||
# O Certbot irá gerir estas linhas.
|
||||
#ssl_certificate /etc/letsencrypt/live/webmail.itguys.com.br/fullchain.pem;
|
||||
#ssl_certificate_key /etc/letsencrypt/live/webmail.itguys.com.br/privkey.pem;
|
||||
|
||||
# --- Cabeçalhos de Segurança Padrão ---
|
||||
# Instrui os navegadores a sempre usarem HTTPS neste site, aumentando a segurança.
|
||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
||||
# Protege contra ataques de "MIME type sniffing".
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
# Previne que o site seja incorporado em iframes noutros sites (clickjacking).
|
||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
|
||||
# --- 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;
|
||||
|
||||
# --- CABEÇALHOS DE PROXY GLOBAIS ---
|
||||
# Estas diretivas são definidas uma vez aqui e serão herdadas por TODAS as 'location' abaixo.
|
||||
# Isto evita repetição e torna a configuração mais limpa e fácil de manter.
|
||||
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;
|
||||
# Necessário se o seu Exchange interno usar um certificado auto-assinado.
|
||||
proxy_ssl_verify off;
|
||||
|
||||
# --- A CORREÇÃO ESTÁ AQUI: A ORDEM DAS LOCALIZAÇÕES ---
|
||||
# --- A ORDEM DAS LOCALIZAÇÕES É CRUCIAL ---
|
||||
# As localizações com expressões regulares (~) são verificadas na ordem em que aparecem.
|
||||
# Colocamos a regra mais específica (ficheiros estáticos) primeiro, para que ela seja
|
||||
# sempre verificada antes das regras mais genéricas.
|
||||
|
||||
# --- LOCALIZAÇÃO PARA FICHEIROS ESTÁTICOS (CACHE PÚBLICO) ---
|
||||
# Esta regra apanha os ficheiros que são seguros para cachear, incluindo as fontes e os ficheiros JSON de tradução.
|
||||
location ~* \.(jpg|jpeg|gif|png|webp|svg|css|js|ico|woff2|ttf|json)$ {
|
||||
# Usa a nossa zona de cache pública.
|
||||
# A CORREÇÃO ESTÁ AQUI: Removemos '|json' da lista. Os ficheiros JSON de tradução
|
||||
# serão agora tratados pela 'location /' principal, que é o correto para o Exchange.
|
||||
location ~* \.(jpg|jpeg|gif|png|webp|svg|css|js|ico|woff2|ttf)$ {
|
||||
proxy_cache zabbix_cache;
|
||||
# Adiciona um cabeçalho de depuração para o cache público.
|
||||
add_header X-Public-Cache $upstream_cache_status;
|
||||
# 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 24 horas.
|
||||
expires 24h;
|
||||
|
||||
# A diretiva proxy_pass precisa de estar dentro de cada location.
|
||||
proxy_pass https://172.16.150.150;
|
||||
}
|
||||
|
||||
# --- LOCALIZAÇÃO PARA O CACHE PRIVADO E DINÂMICO (.aspx, .slab) ---
|
||||
# Esta regra apanha os ficheiros da interface dinâmica do Exchange.
|
||||
location ~* \.(aspx|slab)$ {
|
||||
# Usa a nossa zona de cache dedicada para conteúdo privado, definida no nginx.conf.
|
||||
proxy_cache exchange_private_cache;
|
||||
# A "CHAVE" PESSOAL DE CADA UTILIZADOR. Usa o cookie de sessão para criar um cache único.
|
||||
proxy_cache_key "$scheme$proxy_host$request_uri$cookie_ASP_NET_SessionId";
|
||||
# Cacheia por um tempo muito curto: 1 minuto.
|
||||
proxy_cache_valid 200 1m;
|
||||
# Ignora cabeçalhos que normalmente impediriam o cache de conteúdo autenticado.
|
||||
proxy_ignore_headers Expires Cache-Control Set-Cookie;
|
||||
# Esconde o cabeçalho Set-Cookie para o cliente quando a resposta vem do cache, para evitar conflitos.
|
||||
proxy_hide_header Set-Cookie;
|
||||
# Adiciona um cabeçalho para podermos depurar este cache específico (ver se foi HIT ou MISS).
|
||||
add_header X-Private-Cache $upstream_cache_status;
|
||||
|
||||
# A diretiva proxy_pass precisa de estar dentro de cada location.
|
||||
proxy_pass https://172.16.150.150;
|
||||
}
|
||||
|
||||
# --- LOCALIZAÇÃO PRINCIPAL PARA O RESTO (SEM CACHE, SUPORTE A WEBSOCKETS) ---
|
||||
# Apanha ActiveSync, MAPI, e o tráfego da interface que precisa de ser em tempo real.
|
||||
# Apanha ActiveSync, MAPI, e todo o tráfego dinâmico da interface.
|
||||
location / {
|
||||
# Regra geral: NÃO cachear nada por defeito.
|
||||
proxy_no_cache 1;
|
||||
proxy_cache_bypass 1;
|
||||
|
||||
# --- CORREÇÃO PARA ATUALIZAÇÕES EM TEMPO REAL ---
|
||||
# As linhas abaixo são essenciais para permitir que as conexões WebSocket e
|
||||
# de longa duração funcionem, resolvendo o "bug" da lista de e-mails.
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
|
||||
# Desativa o buffering para garantir que os dados fluam em tempo real.
|
||||
proxy_buffering off;
|
||||
|
||||
# Timeouts longos para suportar sessões do Outlook e uploads/downloads grandes.
|
||||
proxy_read_timeout 3600s;
|
||||
|
||||
# A diretiva proxy_pass precisa de estar dentro de cada location.
|
||||
proxy_pass https://172.16.150.150;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue