From 30e94bb54473b240fdd9fb3e51e17e685bd7bda3 Mon Sep 17 00:00:00 2001 From: "srvproxy001.itguys.com.br" Date: Sun, 21 Sep 2025 04:06:39 -0300 Subject: [PATCH] =?UTF-8?q?[Auto-Sync]=20Atualiza=C3=A7=C3=A3o=20das=20con?= =?UTF-8?q?figura=C3=A7=C3=B5es=20em=20srvproxy001.itguys.com.br=20-=20202?= =?UTF-8?q?5-09-21=2004:06:39?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sites-available/zammad.itguys.com.br.conf | 109 ++++++++++-------- 1 file changed, 58 insertions(+), 51 deletions(-) diff --git a/nginx/sites-available/zammad.itguys.com.br.conf b/nginx/sites-available/zammad.itguys.com.br.conf index 3dcb64e..77b4d05 100644 --- a/nginx/sites-available/zammad.itguys.com.br.conf +++ b/nginx/sites-available/zammad.itguys.com.br.conf @@ -1,92 +1,99 @@ -# Ficheiro: /etc/nginx/sites-available/zammad.itguys.com.br.conf +# ============================================================================== +# ARQUIVO: /etc/nginx/sites-available/zammad.itguys.com.br.conf +# AUTOR: Gemini (Especialista NGINX) +# DATA: 21/09/2025 # -# TEMPLATE DE CONFIGURAÇÃO OTIMIZADO PARA APLICAÇÕES WEB MODERNAS (VERSÃO CORRIGIDA) +# DESCRIÇÃO: +# Configuração de Proxy Reverso OTIMIZADA e SEGURA para Zammad. # -# --- HISTÓRICO DE ALTERAÇÕES --- -# - [2025-09-21] Refatoração completa para alinhar com as melhores práticas. -# - Simplificado o bloco de redirecionamento HTTP para maior eficiência. -# - Agrupadas todas as diretivas SSL para melhor legibilidade. -# - Otimizada a inclusão de snippets de proxy para evitar repetição (DRY Principle). -# - Removidas diretivas redundantes e comentadas. -# -# --- DESCRIÇÃO --- -# Este bloco de servidor atua como um proxy reverso para a aplicação Zammad. -# Acesso: RESTRITO À REDE INTERNA. +# FUNCIONALIDADES: +# - Múltiplos Upstreams: Um para a aplicação web e outro para o WebSocket. +# - Redirecionamento canónico forçado para HTTPS. +# - Restrição de Acesso à rede interna. +# - Suporte a WebSockets para a interface em tempo real (/ws). +# - Cache ativado apenas para os assets estáticos (/assets/). +# ============================================================================== + +# Define o backend principal da aplicação Zammad. +upstream zammad_backend { + server 172.16.254.59; +} + +# Define o backend específico para o serviço de WebSocket do Zammad. +upstream zammad_websocket_backend { + server 172.16.254.59:6042; +} # ============================================================================== -# BLOCO HTTP: Redirecionamento eficiente e limpo para HTTPS +# BLOCO 1: Redirecionamento de HTTP (porta 80) para HTTPS # ============================================================================== server { listen 80; listen [::]:80; server_name zammad.itguys.com.br; - # Responde aos desafios do Let's Encrypt para renovação do certificado. + # Permite a validação do Let's Encrypt. location /.well-known/acme-challenge/ { root /var/www/html; } - # Redireciona permanentemente (301) todo o restante tráfego para HTTPS. - # O bloco "if" gerado pelo Certbot foi removido por ser redundante e menos eficiente. + # Redireciona todo o tráfego para a versão segura. location / { return 301 https://$host$request_uri; } } # ============================================================================== -# BLOCO HTTPS: Configuração principal da aplicação +# BLOCO 2: Servidor Principal - Proxy Reverso para Zammad (HTTPS) # ============================================================================== server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name zammad.itguys.com.br; - # --- Configurações de Segurança e SSL --- - # Diretivas SSL agrupadas para maior clareza e manutenção. + # --- CONFIGURAÇÕES DE SSL E SEGURANÇA --- ssl_certificate /etc/letsencrypt/live/zammad.itguys.com.br/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/zammad.itguys.com.br/privkey.pem; # managed by Certbot - include /etc/nginx/snippets/ssl_params.conf; # Kit de segurança (cifras, HSTS, etc.) + include /etc/nginx/snippets/ssl_params.conf; + add_header X-Content-Type-Options "nosniff" always; + add_header X-Frame-Options "SAMEORIGIN" always; - # --- Políticas de Acesso e Páginas de Erro --- - include /etc/nginx/snippets/internal_networks.conf; # Trava de acesso por rede - include /etc/nginx/snippets/custom_errors.conf; # Páginas de erro personalizadas - include /etc/nginx/snippets/global_robots.conf; # Regras para crawlers + # --- POLÍTICAS DE ACESSO E LOGS --- + include /etc/nginx/snippets/internal_networks.conf; + include /etc/nginx/snippets/global_robots.conf; + access_log /var/log/nginx/zammad.itguys.com.br.access.log; + error_log /var/log/nginx/zammad.itguys.com.br.error.log warn; - # --- Logs e Parâmetros Gerais --- - access_log /var/log/nginx/access.log detailed_proxy; - error_log /var/log/nginx/error.log; - client_max_body_size 50M; # Permite anexos de até 50MB - - # --- Otimização de Proxy (Princípio DRY) --- - # Incluímos os parâmetros de proxy aqui uma vez; eles serão herdados por todos os `location`. - # Isso evita repetição e simplifica a manutenção do ficheiro. + # --- PARÂMETROS GLOBAIS --- + client_max_body_size 50M; # Permite anexos grandes include /etc/nginx/snippets/proxy_params.conf; - # --- ESTRATÉGIA DE CACHE HÍBRIDA (Padrão: NÃO CACHEAR) --- - proxy_cache zammad_cache; - add_header X-Proxy-Cache $upstream_cache_status; # Cabeçalho para depuração do cache - proxy_no_cache 1; - proxy_cache_bypass 1; - # --- REGRAS DE ROTEAMENTO (LOCATIONS) --- - # 1. Localização para Ficheiros Estáticos (CACHE ATIVADO) + # 1. Rota para assets estáticos (CACHE AGRESSIVO) location /assets/ { - # Ativa e configura o cache apenas para esta localização. - include /etc/nginx/snippets/cache_static_assets.conf; - proxy_pass http://172.16.254.59; + proxy_cache zammad_cache; + proxy_cache_valid 200 7d; + proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; + add_header X-Proxy-Cache $upstream_cache_status; + + proxy_pass http://zammad_backend; } - - # 2. Localização para WebSockets (SEM CACHE) + + # 2. Rota para WebSockets (SEM CACHE) location /ws { - # Adiciona os parâmetros específicos para a atualização do protocolo WebSocket. - include /etc/nginx/snippets/websocket_params.conf; - proxy_pass http://172.16.254.59:6042; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + + proxy_pass http://zammad_websocket_backend; } - - # 3. Localização Principal para a Aplicação (SEM CACHE) + + # 3. Rota principal para a aplicação (SEM CACHE) location / { - # Nenhum parâmetro extra necessário, herda `proxy_params.conf` e a política de não cachear. - proxy_pass http://172.16.254.59; + proxy_pass http://zammad_backend; } + + # --- Páginas de Erro Personalizadas --- + include /etc/nginx/snippets/custom_errors.conf; }