diff --git a/nginx/sites-available/cloud.grupopralog.com.br.conf b/nginx/sites-available/cloud.grupopralog.com.br.conf index 454eb9f..9bd8472 100644 --- a/nginx/sites-available/cloud.grupopralog.com.br.conf +++ b/nginx/sites-available/cloud.grupopralog.com.br.conf @@ -308,6 +308,49 @@ server { more_set_headers 'X-Tables-Cache: $upstream_cache_status'; } + location ~ ^/(index\.php/apps/files/api/v1/thumbnail/|ocs/v2\.php/apps/files/api/v1/(directEditing|templates|folder-tree)) { + 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_set_header X-Forwarded-Host $host; + proxy_http_version 1.1; + proxy_set_header Connection ""; + + # Habilita buffering para cache + proxy_buffering on; + + # Reutiliza a zona de cache principal + proxy_cache nextcloud_cache; + proxy_cache_key "$host$request_uri|$cookie_nc_session_id"; + + # Cache de 3 segundos (bom para APIs) + # Nota: Você poderia criar um cache mais longo (ex: 1h) + # se o /thumbnail/ for muito usado, mas 3s é seguro. + proxy_cache_valid 200 3s; + + # Trava o cache (Thundering Herd) + proxy_cache_lock on; + + # Entrega conteúdo antigo se o backend falhar + proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; + + # Ignora headers "não-cacheie" + proxy_ignore_headers "Cache-Control" "Expires" "Pragma"; + + # Esconde os headers originais + proxy_hide_header "Cache-Control"; + proxy_hide_header "Pragma"; + proxy_hide_header "Expires"; + + # Adiciona nosso header de cache (3 segundos) + add_header Cache-Control "public, max-age=3"; + + # Header para depuração + more_set_headers 'X-Files-API-Cache: $upstream_cache_status'; + } + location / { proxy_pass http://nextcloud_backend; proxy_set_header Host $host;