Aumentare il limite di caricamento web di Nextcloud oltre i 2 GB

Se il caricamento di un file tramite browser Nextcloud si arresta a 2 GB, è necessario aumentare il limite a ogni livello che gestisce la richiesta: PHP, il server web o il proxy inverso e qualsiasi spazio di archiviazione temporaneo in uso. Per un target di 5 GB, una tipica configurazione PHP-FPM e Nginx richiede upload_max_filesize = 5G, post_max_size = 6G, e client_max_body_size 5G, oltre a spazio su disco e tempo sufficienti per il trasferimento.

Non esiste un limite universale di 2 GB per Nextcloud. Il manuale di amministrazione attuale indica che la dimensione massima di caricamento predefinita è di 512 MB, mentre un limite inferiore a 2 GB rappresenta un limite invalicabile sui sistemi a 32 bit. Un server che si ferma esattamente a 2 GB ha maggiori probabilità di raggiungere un limite configurato o un limite intermedio. I passaggi seguenti utilizzano 5 GB come esempio; sostituite questo valore con la dimensione massima del file effettivamente necessaria.

Il limite di 2 GB proviene da Nextcloud?

Spesso, il limite visibile è impostato da PHP o dal server web, anziché da un'impostazione di Nextcloud. Il limite massimo supportato da Nextcloud dipende anche dal sistema operativo, dal file system, dalla quota dell'account e dallo spazio su disco temporaneo disponibile. Il suo client di sincronizzazione desktop è un caso a parte: trasferisce i file in blocchi più piccoli e non è soggetto agli stessi limiti di caricamento per singola richiesta descritti qui.

Innanzitutto, identifica il percorso della richiesta. Verifica se gli utenti caricano i file tramite browser, WebDAV o client desktop e se il sito passa attraverso Nginx, Apache, un bilanciatore di carico o il proxy del provider di hosting. Se non gestisci il server, comunica all'amministratore le dimensioni del file che ha generato l'errore, il metodo di caricamento, l'ora dell'errore e l'eventuale codice di errore; solo l'amministratore può modificare i limiti lato server.

Quali impostazioni PHP dovresti modificare?

Per PHP-FPM, modifica la configurazione utilizzata dal servizio PHP-FPM che gestisce Nextcloud, non solo la configurazione PHP da riga di comando. Su Debian o Ubuntu, un percorso comune è /etc/php/8.2/fpm/php.ini; sostituisci 8.2con la versione di PHP installata. La tua distribuzione o il tuo container potrebbero utilizzare un percorso diverso. Il manuale di PHP indica che post_max_sizedeve essere maggiore di upload_max_filesize, quindi lascia spazio per l'overhead delle richieste.

Un file di configurazione PHP-FPM aperto in un editor di codice, con il percorso /etc/php/8.2/fpm/php.ini visibile.
Esempio di percorso di configurazione PHP-FPM. Utilizzare la versione di PHP e il percorso del file attivi nel proprio servizio Nextcloud.

Imposta i valori appropriati per il tuo server. Per l'esempio da 5 GB:

upload_max_filesize = 5G
post_max_size = 6G
max_input_time = 3600
max_execution_time = 3600
Impostazioni PHP che mostrano upload_max_filesize impostato a 5G, post_max_size impostato a 6G e timeout di input ed esecuzione impostati a 3600 secondi.
Esempio di valori PHP-FPM per un target di caricamento di 5 GB; post_max_size è impostato su un valore superiore a upload_max_filesize.

I valori di timeout sono esempi, non requisiti universali. Connessioni lente, server sovraccarichi e caricamenti che devono essere assemblati alla fine potrebbero richiedere più tempo. Le impostazioni di memoria PHP e i limiti di risorse per worker sono comunque importanti: non impostare automaticamente il limite di memoria di ogni worker PHP-FPM a diversi gigabyte. Le linee guida PHP di Nextcloud raccomandano almeno 512 MB di memoria per processo; monitorare l'host e il suo pool PHP-FPM prima di aumentare i limiti delle risorse.

Salva il file e riavvia il servizio PHP-FPM corrispondente affinché legga le nuove impostazioni. Ad esempio, su un sistema che utilizza PHP 8.2, il servizio potrebbe essere php8.2-fpm:

sudo systemctl restart php8.2-fpm

I nomi dei servizi variano. Nei container, aggiornare la configurazione o l'immagine montata e ricreare il container PHP in base alla procedura di distribuzione specifica.

Come si aumenta il limite del server web?

Per Nginx, inserisci la direttiva body-size nel blocco attivo per Nextcloud, oppure in un blocco serverpiù specifico e appropriato :location

client_max_body_size 5G;
Una configurazione del server Nginx in un editor con la direttiva client_max_body_size 5G; visibile all'interno di un blocco server.
Inserisci il limite body-size di Nginx nel blocco server attivo che gestisce le richieste Nextcloud.

Quindi convalida la configurazione e ricarica Nginx:

sudo nginx -t
sudo systemctl reload nginx

Se Nginx segnala un errore di sintassi, correggilo prima di ricaricare. Se a monte si trova un altro proxy, un controller di ingresso o un gateway di hosting, potrebbe imporre un proprio limite alla lunghezza del corpo della richiesta; aumenta anche quel limite. Un limite imposto da un proxy a monte può rifiutare il caricamento anche quando l'host Nextcloud è configurato correttamente.

Per Apache, ispeziona LimitRequestBodyla configurazione dell'host virtuale o della directory applicabile. La documentazione corrente di Nextcloud indica che Apache HTTP Server 2.4.54 e versioni successive impostano di default questa direttiva a 1 GiB; ciò può bloccare il caricamento di una singola richiesta di dimensioni superiori a tale valore. Imposta un limite di byte intenzionale appropriato per l'host, oppure utilizzalo 0solo se desideri deliberatamente non avere alcun limite di dimensione del corpo di Apache. Apache potrebbe anche richiedere timeout di richiesta più lunghi, soprattutto se mod_reqtimeoutè abilitato.

È ancora possibile che problemi di spazio di archiviazione o timeout impediscano il caricamento?

Sì. La directory temporanea di caricamento di PHP, la directory temporanea configurata di Nextcloud e quella di Nginx client_body_temp_pathdevono avere spazio libero sufficiente ed essere scrivibili. Lascia spazio per i caricamenti simultanei e, in alcune configurazioni di archiviazione, per l'assemblaggio dei blocchi caricati. Verifica il filesystem pertinente con df -he conferma che l'account di servizio possa scrivere nella directory temporanea configurata. Non impostare una directory temporanea su un volume pieno o di sola lettura.

Verifica anche la quota Nextcloud dell'utente e lo spazio di archiviazione libero sul server. Aumentare il limite di dimensione delle richieste non aumenta la quota dell'utente né crea capacità su disco. Aumenta la quota solo quando l'account dovrebbe avere spazio sufficiente per il file. Se l'errore si verifica verso la fine di un caricamento o segnala un timeout o un errore del gateway, controlla i log di PHP, del server web, del proxy e di Nextcloud prima di aumentare ulteriormente i limiti. Il manuale di Nextcloud identifica specificamente i timeout di PHP e di Nginx fastcgi_read_timeoutcome possibili cause, anche durante le richieste MOVE finali.

Un avvertimento: le upload_max_filesizeimpostazioni di PHP post_max_sizepotrebbero non gestire allo stesso modo le richieste PUT di file singoli WebDAV o le richieste di caricamento a blocchi di Nextcloud; in questi casi, i timeout di PHP e del server web possono rappresentare il fattore limitante. Diagnosticare il metodo di caricamento prima di modificare i valori che non lo riguardano.

Come si può confermare la correzione?

Iniziate con un file di prova di dimensioni ben superiori al vecchio limite, quindi provate un file vicino al nuovo obiettivo. Caricate il file utilizzando lo stesso browser o client che ha causato l'errore in precedenza. Verificate che il trasferimento venga completato, che il file appaia con le dimensioni previste e che possa essere scaricato o aperto. Un indicatore verde di caricamento completato nella vista File è un utile primo controllo, ma confrontate anche le dimensioni del file salvato.

La vista File di Nextcloud mostra archive-3gb.zip con una dimensione visualizzata di 3 GB e un segno di spunta verde per il completamento.
Dopo la modifica, verificare che un file di prova di dimensioni superiori al limite precedente venga visualizzato con le dimensioni previste e risulti completato.

Se il test continua a fallire, usa l'errore per individuare il livello limitante successivo: un codice HTTP 413 indica un limite per il corpo della richiesta, un codice 504 o un errore in prossimità del completamento suggeriscono un timeout, mentre un messaggio relativo a una quota o allo spazio su disco indica un problema di capacità di archiviazione. Esamina i log relativi allo stesso timestamp, quindi modifica solo l'impostazione responsabile. Mantieni il limite vicino al valore massimo di upload previsto e riserva spazio temporaneo sufficiente per le attività simultanee.

Documentazione ufficiale

Lascia un commento

Risolvi l'avviso di Nextcloud relativo agli indici del database mancanti.

Risolvi l'avviso di Nextcloud relativo agli indici del database mancanti.

Esegui in modo sicuro la riparazione OCC di Nextcloud, visualizza in anteprima le modifiche al database e verifica il motivo per cui l'avviso potrebbe persistere.

Aumentare il limite di caricamento web di Nextcloud oltre i 2 GB

Aumentare il limite di caricamento web di Nextcloud oltre i 2 GB

Consenti il ​​caricamento di file di dimensioni maggiori nel browser Nextcloud allineando le impostazioni di PHP, Nginx o Apache, dello spazio di archiviazione temporaneo e del timeout, e verifica quale limite sta bloccando il file.

Rimuovi l'avviso di memoria PHP di Nextcloud sul server web

Imposta il limite di memoria PHP effettivamente utilizzato da Nextcloud, riavvia il servizio corretto e conferma l'impostazione di 512 MB nella Panoramica di amministrazione.

Collega un bucket compatibile con S3 allo storage esterno di Nextcloud.

Monta un bucket di object storage compatibile in Nextcloud utilizzando il suo backend S3, con l'endpoint, le credenziali, l'ambito di accesso e i passaggi di verifica corretti.

Spostare i dati di Nextcloud su un'unità esterna senza interrompere lo storage

Spostare i dati di Nextcloud su un'unità esterna senza interrompere lo storage

Spostare in modo sicuro una directory di dati Nextcloud su Linux verso un'unità esterna utilizzando un mount UUID persistente, la modalità di manutenzione, una copia verificata e il collegamento simbolico del percorso originale.

Errore del database di Nextcloud dopo un aggiornamento: cosa controllare per prima cosa

Ripristina l'accesso a Nextcloud dopo un aggiornamento diagnosticando gli errori SQL, verificando la connettività del database e completando in sicurezza le migrazioni interrotte.

Reimpostare una password di amministratore Nextcloud persa con OCC

Utilizza il comando OCC di Nextcloud per reimpostare la password di un amministratore dalla shell del server, con indicazioni per nomi utente, autorizzazioni e provider di accesso esterni.

Aggiungere l'intestazione HSTS all'endpoint HTTPS che serve Nextcloud

Elimina l'avviso HSTS di Nextcloud impostando l'intestazione su Apache, NGINX o sul tuo proxy TLS, quindi verifica in modo sicuro la risposta HTTPS pubblica.

Risoluzione dei problemi relativi all'installazione dell'app Nextcloud che segnala l'assenza di connessione a Internet.

Risoluzione dei problemi relativi all'installazione dell'app Nextcloud che segnala l'assenza di connessione a Internet.

Individuare le cause degli errori di installazione dell'App Store riconducibili a problemi di DNS, HTTPS, proxy, TLS o di configurazione del server Nextcloud stesso.

Gestisci i picchi di utilizzo della CPU nell'anteprima di Nextcloud con una coda pianificata.

Sposta il lavoro sulle miniature in una pianificazione in background controllata, ridimensiona le anteprime non utilizzate e verifica la coda senza sovraccaricare il server Nextcloud.