Home
» Come fare
»
Aumentare il limite di caricamento web di Nextcloud oltre i 2 GB
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.
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:
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;
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.
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.