diff --git a/nginx/sites-available/cloud.grupopralog.com.br.conf b/nginx/sites-available/cloud.grupopralog.com.br.conf index 1614cd7..527cb74 100644 --- a/nginx/sites-available/cloud.grupopralog.com.br.conf +++ b/nginx/sites-available/cloud.grupopralog.com.br.conf @@ -208,6 +208,32 @@ 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. + 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"; + proxy_cache foldertree_cache; + proxy_cache_valid 200 3s; # Cache válido por apenas 3 segundos. + proxy_cache_lock on; # Evita que múltiplas requisições gerem o mesmo cache. + proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; + + # Adiciona um header para depuração, para sabermos se o cache foi HIT ou MISS. + add_header X-FolderTree-Cache $upstream_cache_status; + + # Configurações de proxy (copiadas do seu location /) + proxy_pass http://nextcloud_backend; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_http_version 1.1; + proxy_set_header Connection ""; + proxy_buffering on; # Buffering é bom para pequenas respostas de API + } + # --- Rota Principal da Aplicação Nextcloud --- location / { proxy_pass http://nextcloud_backend;