Início
» Como fazer
»
Aumente o limite de upload da web do Nextcloud para além de 2 GB.
Aumente o limite de upload da web do Nextcloud para além de 2 GB.
Se o upload de um navegador Nextcloud parar em 2 GB, aumente o limite em todas as camadas que processam a solicitação: PHP, servidor web ou proxy reverso e qualquer armazenamento temporário em uso. Para um destino de 5 GB, uma configuração típica de PHP-FPM e Nginx precisa de upload_max_filesize = 5G, post_max_size = 6G, e client_max_body_size 5G, além de espaço em disco e tempo suficientes para a transferência.
Não existe um limite universal de 2 GB no Nextcloud. O manual de administração atual indica que o tamanho máximo de upload padrão é de 512 MB, enquanto um limite inferior a 2 GB é um teto rígido em sistemas de 32 bits. Um servidor que para exatamente em 2 GB provavelmente está atingindo um limite configurado ou um limite intermediário. Os passos abaixo usam 5 GB como exemplo; substitua pelo maior tamanho de arquivo que você realmente precisa.
O limite de 2 GB vem do Nextcloud?
Frequentemente, o limite visível é definido pelo PHP ou pelo servidor web, e não por uma configuração do Nextcloud. O limite máximo suportado pelo Nextcloud também depende do sistema operacional, do sistema de arquivos, da cota da conta e do espaço em disco temporário disponível. Seu cliente de sincronização para desktop é um caso à parte: ele transfere arquivos em partes menores e não está sujeito aos mesmos limites de upload por requisição descritos aqui.
Primeiro, identifique o caminho da requisição. Verifique se os usuários estão enviando arquivos pelo navegador, WebDAV ou pelo aplicativo de desktop, e se o site passa por Nginx, Apache, um balanceador de carga ou um proxy do provedor de hospedagem. Se você não administra o servidor, envie ao administrador o tamanho do arquivo que apresentou falha, o método de upload, o horário da falha e qualquer código de erro; somente ele poderá alterar os limites do servidor.
Quais configurações do PHP você deve alterar?
Para o PHP-FPM, edite a configuração usada pelo serviço PHP-FPM que serve o Nextcloud — não apenas a configuração PHP da linha de comando. No Debian ou Ubuntu, um caminho comum é `/etc/ php.d/php-fpm` /etc/php/8.2/fpm/php.ini; substitua `< 8.2versão>` pela versão do PHP instalada. Sua distribuição ou contêiner pode usar um caminho diferente. O manual do PHP observa que `<versão>` post_max_sizedeve ser maior que ` upload_max_filesize<versão>`, portanto, deixe espaço para sobrecarga de requisições.
Exemplo de caminho de configuração do PHP-FPM. Use a versão do PHP e o caminho do arquivo ativos no seu serviço Nextcloud.
Defina os valores adequados ao seu servidor. Para o exemplo de 5 GB:
Exemplo de valores PHP-FPM para um destino de upload de 5 GB; post_max_size está definido com um valor maior que upload_max_filesize.
Os valores de tempo limite são exemplos, não requisitos universais. Conexões lentas, servidores ocupados e uploads que precisam ser reunidos no final podem exigir mais tempo. As configurações de memória do PHP e os limites de recursos por worker ainda são importantes: não defina automaticamente o limite de memória de cada worker do PHP-FPM para vários gigabytes. As diretrizes do Nextcloud para PHP recomendam pelo menos 512 MB de memória por processo; monitore o host e seu pool de PHP-FPM antes de aumentar os limites de recursos.
Salve o arquivo e reinicie o serviço PHP-FPM relevante para que ele leia as novas configurações. Por exemplo, em um sistema usando PHP 8.2, o serviço pode ser php8.2-fpm:
sudo systemctl restart php8.2-fpm
Os nomes dos serviços variam. Em contêineres, atualize a configuração ou imagem montada e recrie o contêiner PHP de acordo com o processo dessa implantação.
Como faço para aumentar o limite do servidor web?
Para o Nginx, coloque a diretiva body-size no serverbloco ativo do Nextcloud, ou em um locationbloco mais específico aplicável:
client_max_body_size 5G;
Coloque o limite de tamanho do corpo da requisição Nginx no bloco de servidor ativo que lida com as requisições do Nextcloud.
Em seguida, valide a configuração e recarregue o Nginx:
sudo nginx -t
sudo systemctl reload nginx
Se o Nginx reportar um erro de sintaxe, corrija-o antes de recarregar. Se outro proxy, controlador de entrada ou gateway de hospedagem estiver na frente, ele pode impor seu próprio limite de corpo de requisição; aumente esse limite também. Um limite em um proxy upstream pode rejeitar o upload mesmo quando o host do Nextcloud estiver configurado corretamente.
Para o Apache, verifique LimitRequestBodya configuração do host virtual ou diretório aplicável. A documentação atual do Nextcloud observa que o Apache HTTP Server 2.4.54 e versões posteriores definem essa diretiva como 1 GiB por padrão; isso pode bloquear o envio de uma única requisição acima desse tamanho. Defina um limite de bytes intencional apropriado para o host ou use-a 0somente se você deliberadamente não quiser limite de tamanho do corpo da requisição no Apache. O Apache também pode precisar de tempos limite de requisição mais longos, especialmente se a diretiva `--body-size` mod_reqtimeoutestiver habilitada.
Problemas de armazenamento ou timeouts ainda podem impedir o upload?
Sim. O diretório temporário de uploads do PHP, o diretório temporário configurado do Nextcloud e o diretório temporário do Nginx client_body_temp_pathdevem ter espaço livre suficiente e permissão de escrita. Deixe espaço para uploads simultâneos e, em algumas configurações de armazenamento, para a montagem de fragmentos enviados. Verifique o sistema de arquivos relevante com `ls -l` df -he confirme se a conta de serviço pode escrever no diretório temporário configurado. Não aponte uma configuração temporária para um volume cheio ou somente leitura.
Verifique também a cota do usuário no Nextcloud e o espaço de armazenamento livre do servidor. Aumentar o limite de tamanho da requisição não aumenta a cota do usuário nem cria capacidade em disco. Aumente a cota somente quando a conta precisar de espaço suficiente para o arquivo. Se o erro ocorrer perto do final de um upload ou relatar um timeout ou erro de gateway, inspecione os logs do PHP, do servidor web, do proxy e do Nextcloud antes de aumentar os limites novamente. O manual do Nextcloud identifica especificamente timeouts do PHP e do Nginx fastcgi_read_timeoutcomo possíveis causas, inclusive durante as requisições MOVE finais.
Uma ressalva: o PHP upload_max_filesizepode post_max_sizenão controlar da mesma forma as requisições PUT de arquivo único do WebDAV ou as requisições de upload em partes do Nextcloud; nesses casos, os tempos limite do PHP e do servidor web podem ser o fator limitante. Analise o método de upload antes de alterar valores que não se aplicam a ele.
Como posso confirmar a correção?
Comece com um arquivo de teste com um tamanho consideravelmente maior que o limite anterior e, em seguida, teste um arquivo próximo ao novo limite. Faça o upload usando o mesmo navegador ou cliente que apresentou a falha inicial. Confirme se a transferência foi concluída, se o arquivo aparece com o tamanho esperado e se pode ser baixado ou aberto. Um indicador verde de upload concluído na visualização Arquivos é uma boa primeira verificação, mas compare também o tamanho do arquivo armazenado.
Após a alteração, confirme se um arquivo de teste maior que o limite anterior aparece com o tamanho esperado e é exibido como concluído.
Se o teste ainda falhar, use o erro para encontrar a próxima camada limitante: um HTTP 413 indica um limite no corpo da requisição, um 504 ou uma falha próxima da conclusão sugere um tempo limite excedido, e uma mensagem de cota ou espaço em disco indica capacidade de armazenamento. Analise os registros para o mesmo carimbo de data/hora e ajuste apenas a configuração responsável. Mantenha o limite próximo ao maior upload esperado e reserve espaço temporário suficiente para atividades simultâneas.