diff --git a/nginx/sites-available/webmail.itguys.com.br.conf b/nginx/sites-available/webmail.itguys.com.br.conf deleted file mode 100644 index b5e2096..0000000 --- a/nginx/sites-available/webmail.itguys.com.br.conf +++ /dev/null @@ -1,125 +0,0 @@ -# Ficheiro: /etc/nginx/sites-available/webmail.itguys.com.br.conf -# -# Configuração de Proxy Reverso com cache HÍBRIDO (público e privado) e suporte -# para WebSockets, otimizada para Microsoft Exchange. - -# ============================================================================== -# BLOCO HTTP: Redirecionar para HTTPS -# ============================================================================== -server { - listen 80; - listen [::]:80; - server_name webmail.itguys.com.br; - location /.well-known/acme-challenge/ { root /var/www/html; } - location / { return 301 https://$host$request_uri; } -} - -# ============================================================================== -# BLOCO HTTPS: O Coração da nossa Configuração -# ============================================================================== -server { - listen 443 ssl http2; - listen [::]:443 ssl http2; - server_name webmail.itguys.com.br; - - # Certificados SSL (Geridos pelo Certbot) - #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 - add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; - - # Configurações de Log - access_log /var/log/nginx/access.log detailed_proxy; - error_log /var/log/nginx/error.log; - - # Cabeçalhos de Proxy Globais (serão herdados por todas as 'location') - 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; - proxy_ssl_verify off; - - # --- LOCALIZAÇÃO ESPECIAL PARA OWA E ECP (COM EXCEÇÃO DO WAF) --- - # Esta regra apanha todo o tráfego para as interfaces de admin e webmail. - location ~ ^/(owa|ecp) { - # --- A CORREÇÃO DEFINITIVA --- - # Desativa o motor de regras do ModSecurity APENAS para estas localizações. - # Isto previne os falsos positivos que bloqueiam a funcionalidade legítima. - modsecurity_rules 'SecRuleEngine Off'; - - # Permite que as atualizações em tempo real (WebSockets) funcionem. - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_buffering off; - - # Timeouts longos para as sessões - proxy_read_timeout 3600s; - - # Encaminha para o servidor Exchange. - proxy_pass https://172.16.150.150; - } - - # --- LOCALIZAÇÃO PARA O CACHE PRIVADO E DINÂMICICO (.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. - 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. - proxy_hide_header Set-Cookie; - # Adiciona um cabeçalho para podermos depurar este cache específico. - 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 PARA FICHEIROS ESTÁTICOS (CACHE PÚBLICO) --- - # Esta regra apanha os ficheiros que são seguros para cachear, incluindo as fontes. - location ~* \.(jpg|jpeg|gif|png|webp|svg|css|js|ico|woff2|ttf)$ { - # Usa a nossa zona de cache pública. - proxy_cache zabbix_cache; - 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 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. - 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; - } -}