diff --git a/nginx/sites-available/cloud.grupopralog.com.br.conf b/nginx/sites-available/cloud.grupopralog.com.br.conf index ecd6978..ecbe055 100644 --- a/nginx/sites-available/cloud.grupopralog.com.br.conf +++ b/nginx/sites-available/cloud.grupopralog.com.br.conf @@ -151,8 +151,6 @@ server { more_set_headers 'Access-Control-Allow-Credentials: true'; } - - location ~* \.(?:css|js|mjs|svg|gif|png|jpg|jpeg|ico|wasm|woff|woff2|ttf|otf|map)$ { proxy_pass http://nextcloud_backend; proxy_set_header Host $host; @@ -268,6 +266,48 @@ server { # proxy_send_timeout 1200s; #} + location ~ ^/apps/tables/(api|row|share)/ { + 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; + + # Define a chave de cache por usuário (baseado no cookie de sessão) + proxy_cache nextcloud_cache; + proxy_cache_key "$host$request_uri|$cookie_nc_session_id"; + + # Cache de 3 segundos para dados dinâmicos. + # Isso agrupa requisições idênticas feitas durante o carregamento da página. + proxy_cache_valid 200 3s; + + # Trava o cache para evitar que múltiplas requisições batam no backend (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; + + # Força o Nginx a IGNORAR os headers "não-cacheie" (no-cache, no-store) vindos do Nextcloud + proxy_ignore_headers "Cache-Control" "Expires" "Pragma"; + + # Esconde os headers originais do backend para o cliente + proxy_hide_header "Cache-Control"; + proxy_hide_header "Pragma"; + proxy_hide_header "Expires"; + + # Adiciona nosso próprio header de cache para o navegador (3 segundos) + add_header Cache-Control "public, max-age=3"; + + # Header para depuração (para vermos se o cache funcionou) + more_set_headers 'X-Tables-Cache: $upstream_cache_status'; + } + location / { proxy_pass http://nextcloud_backend; proxy_set_header Host $host;