[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-30 16:27:16

This commit is contained in:
srvproxy001.itguys.com.br 2025-09-30 16:27:16 -03:00
parent 54d4b0eed9
commit abce8340cc
1 changed files with 31 additions and 8 deletions

View File

@ -2,16 +2,15 @@
# ARQUIVO: business.itguys.com.br # ARQUIVO: business.itguys.com.br
# AUTOR: Gemini (Especialista NGINX) # AUTOR: Gemini (Especialista NGINX)
# DATA: 27/09/2025 - 17:22 # DATA: 27/09/2025 - 17:22
# VERSÃO: 2.0 (Hardening de Segurança e Padronização com Políticas Globais) # VERSÃO: 2.1 (Ajuste de Upload)
# #
# DESCRIÇÃO: # DESCRIÇÃO:
# Mantém as otimizações de performance (Preconnect, Cache) e implementa as # Adicionado bloco de location específico para tratar uploads, aplicando as regras
# políticas globais de segurança (Rate Limit, Bot Block). Corrige a vulnerabilidade # de tipo de arquivo definidas no mapa global.
# de verificação de SSL do backend e padroniza logs e diretivas TLS.
# ================================================================================================= # =================================================================================================
# ============================================================================== # ==============================================================================
# BLOCO 1: Redirecionamento de HTTP para HTTPS # BLOCO 0: Mapeamento de Tipos de Arquivo para Upload
# ============================================================================== # ==============================================================================
map $http_content_type $allowed_upload { map $http_content_type $allowed_upload {
default 0; # Bloqueia tudo por padrão default 0; # Bloqueia tudo por padrão
@ -23,6 +22,9 @@ map $http_content_type $allowed_upload {
"image/png" 1; "image/png" 1;
} }
# ==============================================================================
# BLOCO 1: Redirecionamento de HTTP para HTTPS
# ==============================================================================
server { server {
if ($host = autolab.itguys.com.br) { if ($host = autolab.itguys.com.br) {
return 301 https://$host$request_uri; return 301 https://$host$request_uri;
@ -83,7 +85,6 @@ server {
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always; add_header X-Content-Type-Options "nosniff" always;
# ADICIONADO: CSP para segurança moderna, permitindo recursos externos necessários.
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://cdn.jsdelivr.net; style-src 'self' https://cdn.jsdelivr.net; font-src https://cdn.jsdelivr.net; object-src 'none';" always; add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://cdn.jsdelivr.net; style-src 'self' https://cdn.jsdelivr.net; font-src https://cdn.jsdelivr.net; object-src 'none';" always;
# --- Otimização de Carregamento (Preconnect e Preload) --- # --- Otimização de Carregamento (Preconnect e Preload) ---
@ -106,9 +107,7 @@ server {
keepalive_requests 1000; keepalive_requests 1000;
# --- Estratégia de Cache Segura --- # --- Estratégia de Cache Segura ---
# IMPORTANTE: Substitua 'seu_cookie_de_sessao' pelo nome real do cookie de sessão da sua aplicação.
set $session_cookie_name "seu_cookie_de_sessao"; set $session_cookie_name "seu_cookie_de_sessao";
proxy_cache business_cache; proxy_cache business_cache;
add_header X-Proxy-Cache $upstream_cache_status; add_header X-Proxy-Cache $upstream_cache_status;
proxy_cache_key "$scheme$request_method$host$request_uri$cookie_$session_cookie_name"; proxy_cache_key "$scheme$request_method$host$request_uri$cookie_$session_cookie_name";
@ -128,6 +127,24 @@ server {
proxy_read_timeout 90s; proxy_read_timeout 90s;
# --- REGRAS DE ROTEAMENTO (LOCATIONS) --- # --- REGRAS DE ROTEAMENTO (LOCATIONS) ---
# ==============================================================================
# NOVO BLOCO: Tratamento específico para o endpoint de Upload
# IMPORTANTE: Adapte "/api/upload/" para o caminho real da sua aplicação.
# ==============================================================================
location /api/upload/ {
# Primeiro, verifica se o tipo de arquivo é permitido
if ($allowed_upload = 0) {
# Se não for, registra em um log específico e retorna erro 415
access_log /var/log/nginx/business.itguys.com.br.upload-blocked.log;
return 415; # 415 Unsupported Media Type
}
# Se o arquivo for permitido, a requisição segue para o backend
add_header Cache-Control "no-cache, no-store, must-revalidate";
proxy_pass https://172.16.121.13;
}
location ~* \.(?:css|js|mjs|svg|gif|png|jpg|jpeg|ico|webp|wasm|woff2?|ttf|eot)$ { location ~* \.(?:css|js|mjs|svg|gif|png|jpg|jpeg|ico|webp|wasm|woff2?|ttf|eot)$ {
proxy_ignore_headers Cache-Control Expires; proxy_ignore_headers Cache-Control Expires;
proxy_cache_valid 200 60m; proxy_cache_valid 200 60m;
@ -137,6 +154,12 @@ server {
proxy_pass https://172.16.121.13; proxy_pass https://172.16.121.13;
} }
# Uploads (arquivos estáticos do backend)
location /uploads/ {
alias /var/www/html/Ambiente_de_Testes/Oficina/Backend/business/ambiente_python/uploads;
autoindex off;
}
location / { location / {
add_header Cache-Control "no-cache, no-store, must-revalidate"; add_header Cache-Control "no-cache, no-store, must-revalidate";
proxy_pass https://172.16.121.13; proxy_pass https://172.16.121.13;