diff --git a/nginx/sites-available/cloud.grupopralog.com.br.conf b/nginx/sites-available/cloud.grupopralog.com.br.conf index 89bf25c..31ee064 100644 --- a/nginx/sites-available/cloud.grupopralog.com.br.conf +++ b/nginx/sites-available/cloud.grupopralog.com.br.conf @@ -214,10 +214,10 @@ server { add_header X-Proxy-Cache $upstream_cache_status; } - # --- Micro-caching para a API de listagem de pastas (Group Folders) --- - # Aplica um cache de apenas 3 segundos para a API que monta a árvore de diretórios. - # Isso protege o backend contra múltiplas requisições simultâneas para a mesma pasta, - # que é comum em group folders. + # --- Micro-caching para a API de listagem de pastas (Group Folders) --- + # Aplica um cache de apenas 3 segundos para a API que monta a árvore de diretórios. + # Isso protege o backend contra múltiplas requisições simultâneas para a mesma pasta, + # que é comum em group folders. location = /apps/files/api/v1/folder-tree { # A chave de cache DEVE incluir o cookie de sessão para evitar vazamento de dados. proxy_cache_key "$scheme$request_method$host$request_uri$is_args$args$cookie_nc_session_id"; @@ -242,7 +242,25 @@ server { # --- Rota Principal da Aplicação Nextcloud --- location / { - proxy_pass http://nextcloud_backend; + # --- NOVO: Lógica de Cache de Sessão --- + # Apenas ativa o cache se a URI for marcada como 'cacheable' pelo map + if ($cacheable_session_request) { + # A chave de cache DEVE incluir o cookie de sessão para isolar os dados do usuário. + proxy_cache_key "$scheme$request_method$host$request_uri$is_args$args$cookie_nc_session_id"; + proxy_cache nextcloud_session_cache; # Usa a nova zona de cache + proxy_cache_valid 200 5m; # Cache de 5 minutos para páginas dinâmicas + proxy_cache_revalidate on; # Permite que NGINX verifique se o conteúdo mudou com ETag + proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; + + # Permite que o Nextcloud invalide o cache enviando headers específicos + proxy_cache_bypass $http_cache_control; + proxy_no_cache $http_cache_control; + + # Header para depuração: HIT, MISS, BYPASS, EXPIRED, etc. + add_header X-Session-Cache $upstream_cache_status; + } + # --- Configurações de Proxy Padrão --- + proxy_pass http://nextcloud_backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Connection "";