[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-30 16:27:16
This commit is contained in:
parent
54d4b0eed9
commit
abce8340cc
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue