diff --git a/nginx/sites-available/business.itguys.com.br.conf b/nginx/sites-available/business.itguys.com.br.conf new file mode 100644 index 0000000..800ccc4 --- /dev/null +++ b/nginx/sites-available/business.itguys.com.br.conf @@ -0,0 +1,82 @@ +# Ficheiro: /etc/nginx/sites-available/business.itguys.com.br.conf +# +# Configuração de Proxy Reverso padrão para um site de negócios, com acesso público +# e uma estratégia de cache otimizada. + +# ============================================================================== +# BLOCO HTTP: Redirecionar para HTTPS +# ============================================================================== +server { + listen 80; + listen [::]:80; + server_name business.itguys.com.br; + + # Permite a validação do Let's Encrypt. + location /.well-known/acme-challenge/ { + root /var/www/html; + } + + # Redireciona todo o outro tráfego para a versão segura. + 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 business.itguys.com.br; + + # --- Certificados e Segurança SSL --- + # O Certbot irá gerir estas linhas. Lembre-se de o executar para este domínio. + ssl_certificate /etc/letsencrypt/live/business.itguys.com.br/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/business.itguys.com.br/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/business.itguys.com.br/fullchain.pem; + # Inclui o nosso "kit" de segurança SSL com cifras modernas e cabeçalhos de segurança. + include /etc/nginx/snippets/ssl_params.conf; + + # --- Políticas de Acesso e Logs --- + # Não incluímos a trava de rede interna para permitir o acesso público. + # Usa o robots.txt restritivo por padrão. Se este site precisa de ser indexado, + # remova esta linha e configure o robots.txt no backend. + include /etc/nginx/snippets/global_robots.conf.conf; + access_log /var/log/nginx/access.log detailed_proxy; + error_log /var/log/nginx/error.log; + + # --- ESTRATÉGIA DE CACHE HÍBRIDA --- + # Usa a nossa zona de cache pública. + proxy_cache zabbix_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; + + # --- REGRAS DE ROTEAMENTO (LOCATIONS) --- + + # 1. Rota para Ficheiros Estáticos (Cache Agressivo) + # Apanha a "casca" da aplicação para acelerar o carregamento. + location ~* \.(?:css|js|mjs|svg|gif|png|jpg|jpeg|ico|wasm|woff2?|ttf|eot)$ { + include /etc/nginx/snippets/proxy_params.conf; + include /etc/nginx/snippets/cache_aggressive_static.conf; + proxy_pass http://172.16.121.13; + } + + # 2. Rota Principal para a Aplicação (Cache Curto) + # Apanha todo o resto do tráfego (páginas HTML, APIs, etc.). + 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; + + include /etc/nginx/snippets/proxy_params.conf; + # Se a aplicação usar WebSockets, inclua o snippet abaixo. + # include /etc/nginx/snippets/websocket_params.conf; + + proxy_pass http://172.16.121.13; + } +}