diff --git a/nginx/sites-available/cloud.grupopralog.com.br.conf b/nginx/sites-available/cloud.grupopralog.com.br.conf index bc4bb4a..8f1f197 100644 --- a/nginx/sites-available/cloud.grupopralog.com.br.conf +++ b/nginx/sites-available/cloud.grupopralog.com.br.conf @@ -164,30 +164,31 @@ server { proxy_hide_header "Cache-Control"; proxy_hide_header "Expires"; + proxy_hide_header "Pragma"; brotli_static on; gzip_static on; } - #location ~ ^/(remote\.php/(webdav|dav)|ocs/v[12]\.php/apps/forms/api/.*/submissions/files/.*) { - # 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 ""; + location ~ ^/(remote\.php/(webdav|dav)|ocs/v[12]\.php/apps/forms/api/.*/submissions/files/.*) { + 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 ""; - # # Desabilita o buffering para streaming de arquivos - # proxy_buffering off; - # proxy_request_buffering off; - # - # # Timeouts longos para uploads/downloads - # proxy_connect_timeout 60s; - # proxy_read_timeout 1200s; - # proxy_send_timeout 1200s; - #} + # Desabilita o buffering para streaming de arquivos + proxy_buffering off; + proxy_request_buffering off; + + # Timeouts longos para uploads/downloads + proxy_connect_timeout 60s; + proxy_read_timeout 1200s; + proxy_send_timeout 1200s; + } location = /ocs/v2.php/apps/recommendations/api/v1/recommendations { proxy_pass http://nextcloud_backend; @@ -206,7 +207,7 @@ server { more_set_headers 'X-API-Rec-Cache: $upstream_cache_status'; } - location ~ ^/(apps/files/api/v1/folder-tree|ocs/v2\.php/apps/files/api/v1/folder-tree) { + location = /apps/files/api/v1/folder-tree { proxy_pass http://nextcloud_backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; @@ -214,25 +215,12 @@ server { proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Connection ""; - proxy_buffering on; - - # Usar a zona de cache 'foldertree_cache' que você já tinha, ou a 'nextcloud_cache' - proxy_cache foldertree_cache; + proxy_cache foldertree_cache; proxy_cache_key "$scheme$request_method$host$request_uri$is_args$args$cookie_nc_session_id"; - - # Cache de 3 segundos proxy_cache_valid 200 3s; proxy_cache_lock on; proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; - - # Ignora "no-cache" do backend - proxy_ignore_headers "Cache-Control" "Expires"; - proxy_hide_header "Cache-Control"; - proxy_hide_header "Expires"; - add_header Cache-Control "public, max-age=3"; - - # Header de depuração more_set_headers 'X-FolderTree-Cache: $upstream_cache_status'; } @@ -252,136 +240,27 @@ server { more_set_headers 'X-APIMicroCache-Status: $upstream_cache_status'; } - location ~ ^/(remote\.php/(webdav|dav)|ocs/v[12]\.php/apps/forms/api/.*/submissions/files/.*) { - 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 ""; - - # --- Lógica de Cache vs. Streaming --- - - # 1. Por padrão, desabilitamos o buffering para streaming (uploads/downloads) - proxy_buffering off; - proxy_request_buffering off; - - # 2. SE for um PROPFIND (listagem de diretório), ligamos o buffering e o cache - if ($request_method = PROPFIND) { - proxy_buffering on; - proxy_request_buffering on; # Necessário para o cache - - proxy_cache nextcloud_cache; # Usar a zona de cache - # IMPORTANTE: Autorizar cache do método PROPFIND - proxy_cache_methods PROPFIND; - # Chave de cache por usuário/sessão - proxy_cache_key "$host$request_uri|$cookie_nc_session_id"; - - # Cache de 10 segundos para listagens de pasta (status 200 e 207) - proxy_cache_valid 200 207 10s; - proxy_cache_lock on; - proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; - - # Header para depuração - more_set_headers 'X-DAV-Cache: $upstream_cache_status'; - - # Ignorar "no-cache" do backend para PROPFIND - proxy_ignore_headers "Cache-Control" "Expires"; - proxy_hide_header "Cache-Control"; - proxy_hide_header "Expires"; - add_header Cache-Control "public, max-age=10"; - } - - # Timeouts longos (mantém para uploads/downloads) - proxy_connect_timeout 60s; - proxy_read_timeout 1200s; - proxy_send_timeout 1200s; - } - - location ~ ^/(apps/tables/(api|row|share)|index\.php/apps/tables/api/1|ocs/v2\.php/apps/tables/api/2) { - 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"; - - # Esconde os headers originais do backend para o cliente - proxy_hide_header "Cache-Control"; - 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 ~ ^/(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"; - - # Esconde os headers originais - proxy_hide_header "Cache-Control"; - 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 ~ ^/remote\.php/(webdav|dav)/ { +# 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 o streaming de arquivos grandes para o backend + # # sem bufferizar o corpo inteiro da requisição no Nginx. + # proxy_buffering off; + # proxy_request_buffering off; + # + # # Timeouts longos para uploads/downloads grandes + # proxy_connect_timeout 60s; + # proxy_read_timeout 1200s; + # proxy_send_timeout 1200s; + #} location / { proxy_pass http://nextcloud_backend;