[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-16 10:12:16
This commit is contained in:
parent
795beff0c7
commit
7ce8b8e8a3
|
|
@ -1,24 +1,17 @@
|
|||
# Ficheiro: /etc/nginx/sites-available/zammad.itguys.com.br.conf
|
||||
#
|
||||
# Configuração de Proxy Reverso com cache HÍBRIDO e suporte a WebSockets, otimizada para Zammad.
|
||||
# Configuração de Proxy Reverso com cache HÍBRIDO e suporte a WebSockets,
|
||||
# otimizada especificamente para o Zammad.
|
||||
|
||||
# ==============================================================================
|
||||
# BLOCO HTTP: Redirecionar todo o tráfego inseguro para HTTPS
|
||||
# BLOCO HTTP: Redirecionar para HTTPS
|
||||
# ==============================================================================
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name zammad.itguys.com.br;
|
||||
|
||||
# Regra especial para a validação do Let's Encrypt funcionar corretamente.
|
||||
location /.well-known/acme-challenge/ {
|
||||
root /var/www/html;
|
||||
}
|
||||
|
||||
# Para todas as outras requisições, envia um redirecionamento permanente para a versão segura.
|
||||
location / {
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
location /.well-known/acme-challenge/ { root /var/www/html; }
|
||||
location / { return 301 https://$host$request_uri; }
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
|
|
@ -29,68 +22,64 @@ server {
|
|||
listen [::]:443 ssl http2;
|
||||
server_name zammad.itguys.com.br;
|
||||
|
||||
# --- Certificados SSL (Geridos pelo Certbot) ---
|
||||
# O Certbot irá preencher estas linhas automaticamente após a primeira execução.
|
||||
# ssl_certificate /etc/letsencrypt/live/zammad.itguys.com.br/fullchain.pem;
|
||||
# ssl_certificate_key /etc/letsencrypt/live/zammad.itguys.com.br/privkey.pem;
|
||||
# Certificados SSL (Geridos pelo Certbot)
|
||||
#ssl_certificate /etc/letsencrypt/live/zammad.itguys.com.br/fullchain.pem;
|
||||
#ssl_certificate_key /etc/letsencrypt/live/zammad.itguys.com.br/privkey.pem;
|
||||
|
||||
# --- Cabeçalhos de Segurança Padrão ---
|
||||
# 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;
|
||||
|
||||
# --- Configurações de Log ---
|
||||
# Configurações de Log
|
||||
access_log /var/log/nginx/access.log detailed_proxy;
|
||||
error_log /var/log/nginx/error.log;
|
||||
|
||||
# Aumenta o tamanho máximo do corpo da requisição para permitir anexos grandes no Zammad.
|
||||
# Aumenta o tamanho máximo do corpo da requisição para permitir anexos grandes.
|
||||
client_max_body_size 50M;
|
||||
|
||||
# --- ESTRATÉGIA DE CACHE HÍBRIDA E SEGURA ---
|
||||
# Usa a zona de cache que já criámos no nginx.conf (ex: 'zabbix_cache').
|
||||
proxy_cache zabbix_cache;
|
||||
# Adiciona um cabeçalho à resposta para podermos ver se o cache foi um HIT ou um MISS.
|
||||
# --- CABEÇALHOS DE PROXY GLOBAIS ---
|
||||
# Estes cabeçalhos serão herdados por TODAS as 'location' abaixo.
|
||||
proxy_set_header Host $http_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;
|
||||
|
||||
# --- ESTRATÉGIA DE CACHE HÍBRIDA ---
|
||||
proxy_cache zammad_cache; # Recomendado criar uma zona de cache dedicada 'zammad_cache' no nginx.conf
|
||||
add_header X-Proxy-Cache $upstream_cache_status;
|
||||
# Regra geral: NÃO cachear nada por defeito. Isto protege as páginas dinâmicas e as operações de API.
|
||||
proxy_no_cache 1;
|
||||
proxy_no_cache 1; # Regra geral: NÃO cachear por defeito.
|
||||
proxy_cache_bypass 1;
|
||||
|
||||
# --- LOCALIZAÇÃO PARA FICHEIROS ESTÁTICOS (CACHE ATIVADO) ---
|
||||
# Esta regra captura ficheiros que são seguros para cachear.
|
||||
location ~* \.(jpg|jpeg|gif|png|webp|svg|css|js|ico|woff2|ttf)$ {
|
||||
# Ativa o cache apenas para estes ficheiros.
|
||||
# O Zammad serve os seus ficheiros estáticos a partir do caminho /assets/
|
||||
location /assets/ {
|
||||
# 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, para performance máxima.
|
||||
expires 24h;
|
||||
|
||||
# Encaminha para o servidor Zammad.
|
||||
expires 7d; # Instrui o navegador a guardar uma cópia por 7 dias.
|
||||
|
||||
proxy_pass http://172.16.254.59;
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
|
||||
# --- LOCALIZAÇÃO PRINCIPAL PARA A APLICAÇÃO (SEM CACHE, SUPORTE A WEBSOCKETS) ---
|
||||
# Esta regra apanha todo o resto do tráfego (páginas, APIs, WebSockets).
|
||||
location / {
|
||||
# O cache permanece desativado aqui por herdar da regra geral do servidor.
|
||||
proxy_pass http://172.16.254.59;
|
||||
|
||||
# --- CABEÇALHOS ESSENCIAIS PARA O ZAMMAD ---
|
||||
proxy_set_header Host $http_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;
|
||||
|
||||
# --- A "MAGIA" PARA AS ATUALIZAÇÕES EM TEMPO REAL ---
|
||||
# As 3 linhas abaixo são cruciais para que os WebSockets funcionem.
|
||||
# --- LOCALIZAÇÃO PARA WEBSOCKETS (SEM CACHE E HEADERS ESPECIAIS) ---
|
||||
# Esta regra captura a URL /ws que vimos a falhar no log do F12.
|
||||
location /ws {
|
||||
# Cabeçalhos essenciais para "promover" a conexão para WebSocket.
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
|
||||
# Desativa o buffering do Nginx para garantir que os dados em tempo real
|
||||
# fluam diretamente entre o cliente e o servidor Zammad.
|
||||
|
||||
# Desativa o buffering para que os dados fluam em tempo real.
|
||||
proxy_buffering off;
|
||||
|
||||
proxy_pass http://172.16.254.59;
|
||||
}
|
||||
|
||||
# --- LOCALIZAÇÃO PRINCIPAL PARA A APLICAÇÃO (SEM CACHE) ---
|
||||
# Esta regra apanha todo o resto do tráfego (páginas, APIs, ficheiros JSON dinâmicos).
|
||||
location / {
|
||||
# O cache permanece desativado aqui por herdar da regra geral.
|
||||
proxy_pass http://172.16.254.59;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue