Увеличьте лимит загрузки веб-страниц в Nextcloud до более чем 2 ГБ.

Если загрузка через браузер Nextcloud останавливается на отметке 2 ГБ, увеличьте лимит на каждом уровне, обрабатывающем запрос: PHP, веб-сервер или обратный прокси, а также любое используемое временное хранилище. Для целевого объема в 5 ГБ типичной конфигурации PHP-FPM и Nginx требуется upload_max_filesize = 5G, post_max_size = 6G, и client_max_body_size 5G, а также достаточно места на диске и времени для передачи.

В Nextcloud нет универсального ограничения в 2 ГБ. В текущем руководстве администратора указано, что максимальный размер загружаемого файла по умолчанию составляет 512 МБ, а ограничение ниже 2 ГБ является жестким пределом для 32-битных систем. Сервер, который останавливается ровно на 2 ГБ, скорее всего, достигает установленного лимита или сталкивается с промежуточным звеном. В приведенных ниже шагах в качестве примера используется 5 ГБ; замените этот размер на максимально необходимый вам размер файла.

Ограничение в 2 ГБ связано с Nextcloud?

Часто видимый лимит устанавливается PHP или веб-сервером, а не настройками Nextcloud. Поддерживаемый Nextcloud максимальный размер также зависит от операционной системы, файловой системы, квоты учетной записи и доступного временного дискового пространства. Клиент синхронизации для настольных компьютеров — это отдельный случай: он передает файлы небольшими фрагментами и не подпадает под те же ограничения на загрузку одного запроса, описанные здесь.

Сначала определите путь запроса. Проверьте, загружают ли пользователи файлы через браузер, WebDAV или настольный клиент, и проходит ли сайт через Nginx, Apache, балансировщик нагрузки или прокси-сервер хостинг-провайдера. Если вы не являетесь администратором сервера, отправьте администратору информацию о размере файла, способе загрузки, времени сбоя и любом коде ошибки; только он может изменять ограничения на стороне сервера.

Какие настройки PHP следует изменить?

Для PHP-FPM отредактируйте конфигурацию, используемую службой PHP-FPM, обслуживающей Nextcloud, — а не только конфигурацию командной строки PHP. В Debian или Ubuntu распространенный путь — /etc/php/8.2/fpm/php.ini; замените 8.2на установленную версию PHP. В вашем дистрибутиве или контейнере может использоваться другой путь. В руководстве по PHP указано, что post_max_sizeдолжен быть больше, чем upload_max_filesize, поэтому оставьте место для накладных расходов запроса.

В редакторе кода открыт конфигурационный файл PHP-FPM, в котором виден путь /etc/php/8.2/fpm/php.ini.
Пример пути к файлу конфигурации PHP-FPM. Используйте версию PHP и путь к файлу, активные в вашем собственном сервисе Nextcloud.

Установите значения, соответствующие вашему серверу. Например, для 5 ГБ:

upload_max_filesize = 5G
post_max_size = 6G
max_input_time = 3600
max_execution_time = 3600
В настройках PHP указано, что параметр upload_max_filesize установлен на 5G, post_max_size — на 6G, а время ожидания ввода и выполнения — на 3600 секунд.
Пример значений PHP-FPM для целевого размера загружаемого файла 5 ГБ; значение post_max_size установлено выше, чем upload_max_filesize.

Указанные значения таймаута являются примерами, а не универсальными требованиями. Медленное соединение, загруженные серверы и загрузки, которые необходимо собрать в конце, могут потребовать больше времени. Настройки памяти PHP и ограничения ресурсов для каждого обработчика по-прежнему имеют значение: не следует автоматически устанавливать ограничение памяти для каждого обработчика PHP-FPM на несколько гигабайт. В рекомендациях Nextcloud по PHP указано, что на каждый процесс требуется не менее 512 МБ памяти; перед повышением лимитов ресурсов необходимо отслеживать состояние хоста и его пула PHP-FPM.

Сохраните файл и перезапустите соответствующую службу PHP-FPM, чтобы она прочитала новые настройки. Например, в системе, использующей PHP 8.2, служба может выглядеть так php8.2-fpm:

sudo systemctl restart php8.2-fpm

Названия сервисов могут различаться. В контейнерах обновите смонтированную конфигурацию или образ и пересоздайте PHP-контейнер в соответствии с процедурой развертывания данного контейнера.

Как увеличить лимит веб-сервера?

Для Nginx директиву body-size следует поместить в активный serverблок, а для Nextcloud — в более подходящий locationблок:

client_max_body_size 5G;
Конфигурация сервера Nginx в редакторе с директивой client_max_body_size 5G; отображается внутри блока сервера.
Укажите ограничение на размер тела запроса Nginx в блоке активного сервера, обрабатывающем запросы Nextcloud.

Затем проверьте конфигурацию и перезагрузите Nginx:

sudo nginx -t
sudo systemctl reload nginx

Если Nginx сообщает об ошибке синтаксиса, исправьте её перед перезагрузкой. Если перед Nginx находится другой прокси-сервер, контроллер входящего трафика или шлюз хостинга, он может устанавливать собственное ограничение на длину тела запроса; увеличьте и это ограничение. Ограничение на вышестоящем прокси-сервере может привести к отклонению загрузки, даже если хост Nextcloud настроен правильно.

Для Apache проверьте LimitRequestBodyконфигурацию соответствующего виртуального хоста или каталога. В текущей документации Nextcloud указано, что в Apache HTTP Server 2.4.54 и более поздних версиях эта директива по умолчанию установлена ​​на 1 ГиБ; это может блокировать загрузку одного запроса, превышающую этот размер. Установите преднамеренное ограничение в байтах, соответствующее хосту, или используйте его 0только в том случае, если вы намеренно не хотите устанавливать ограничение на размер тела запроса Apache. Apache также может потребоваться более длительное время ожидания запроса, особенно если mod_reqtimeoutэта функция включена.

Могут ли проблемы с хранилищем или таймауты по-прежнему препятствовать загрузке?

Да. Временный каталог для загрузки PHP, настроенный временный каталог Nextcloud и каталог Nginx client_body_temp_pathдолжны иметь достаточно свободного места и быть доступными для записи. Оставьте место для одновременной загрузки и, в некоторых конфигурациях хранилища, для сборки загруженных фрагментов. Проверьте соответствующую файловую систему с помощью команды `npm install` df -hи убедитесь, что учетная запись службы может записывать в настроенный временный каталог. Не указывайте в настройках временного каталога полный или доступный только для чтения том.

Также проверьте квоту пользователя в Nextcloud и свободное место на сервере. Увеличение лимита размера запроса не увеличивает квоту пользователя и не создает дисковое пространство. Увеличивайте квоту только тогда, когда в учетной записи должно быть достаточно места для файла. Если ошибка возникает ближе к концу загрузки или сообщает о таймауте или ошибке шлюза, проверьте журналы PHP, веб-сервера, прокси и Nextcloud, прежде чем увеличивать лимиты. В руководстве Nextcloud fastcgi_read_timeoutв качестве возможных причин указаны таймауты PHP и Nginx, в том числе во время заключительных запросов MOVE.

upload_max_filesizeОдно важное замечание: параметры PHP post_max_sizeмогут отличаться при обработке запросов WebDAV с одним файлом (PUT) или запросов Nextcloud с пошаговой загрузкой; в этих случаях ограничивающим фактором могут быть тайм-ауты PHP и веб-сервера. Перед изменением значений, которые к нему не относятся, проведите диагностику метода загрузки.

Как можно подтвердить правильность исправления?

Начните с одного тестового файла, размер которого значительно превышает старый лимит, затем протестируйте файл, размер которого близок к новому целевому значению. Загрузите файл через тот же браузер или клиент, который изначально не сработал. Убедитесь, что передача завершена, файл отображается с ожидаемым размером и его можно скачать или открыть. Зеленый индикатор завершения загрузки в окне «Файлы» — полезная первая проверка, но сравните также размер сохраненного файла.

В окне файлов Nextcloud отображается файл archive-3gb.zip размером 3 ГБ и зеленая галочка подтверждения завершения.
После внесения изменений убедитесь, что тестовый файл, размер которого превышает предыдущий лимит, отображается в ожидаемом размере и считается завершенным.

Если тест по-прежнему не проходит, используйте сообщение об ошибке, чтобы определить следующий ограничивающий уровень: ошибка HTTP 413 указывает на ограничение тела запроса, ошибка 504 или сбой, близкий к завершению, предполагает тайм-аут, а сообщение о квоте или нехватке дискового пространства указывает на емкость хранилища. Просмотрите журналы с той же меткой времени, затем скорректируйте только тот параметр, который вызывает проблему. Держите лимит близким к максимальному ожидаемому объему загрузки и сохраняйте достаточно временного пространства для одновременной активности.

Официальная документация

Оставить комментарий

Увеличьте лимит загрузки веб-страниц в Nextcloud до более чем 2 ГБ.

Увеличьте лимит загрузки веб-страниц в Nextcloud до более чем 2 ГБ.

Разрешите загрузку файлов больших размеров через браузер Nextcloud, согласовав параметры PHP, Nginx или Apache, временного хранилища и тайм-аута, а также проверьте, какое ограничение блокирует файл.

Устранить предупреждение Nextcloud о нехватке памяти PHP на веб-сервере.

Установите ограничение на объем памяти, фактически используемый Nextcloud для PHP, перезапустите нужную службу и подтвердите значение 512 МБ в разделе «Обзор администратора».

Подключите совместимое с S3 хранилище к внешнему хранилищу Nextcloud.

Подключите совместимый сегмент объектного хранилища в Nextcloud, используя его бэкэнд S3, с указанием правильной конечной точки, учетных данных, области доступа и этапов проверки.

Переместите данные Nextcloud на внешний диск, не повреждая хранилище.

Переместите данные Nextcloud на внешний диск, не повреждая хранилище.

Безопасное перемещение каталога данных Linux Nextcloud на внешний диск с использованием постоянного монтирования UUID, режима обслуживания, проверенной копии и символической ссылки на исходный путь.

Ошибка базы данных Nextcloud после обновления: что проверить в первую очередь?

Восстановите доступ к Nextcloud после обновления, диагностировав ошибки SQL, проверив подключение к базе данных и безопасно завершив прерванные миграции.

Сброс утерянного пароля администратора Nextcloud с помощью OCC

Используйте команду OCC в Nextcloud для сброса пароля администратора из командной строки сервера, с инструкциями по заполнению полей для имен пользователей, разрешений и внешних сервисов авторизации.

Добавьте заголовок HSTS к HTTPS-конечной точке, обслуживающей Nextcloud.

Чтобы устранить предупреждение HSTS от Nextcloud, установите заголовок на Apache, NGINX или вашем TLS-прокси, а затем безопасно проверьте публичный HTTPS-ответ.

Устранение неполадок при установке приложения Nextcloud, сообщающего об отсутствии интернета.

Устранение неполадок при установке приложения Nextcloud, сообщающего об отсутствии интернета.

Причины сбоев при установке приложений из App Store могут быть связаны с DNS, HTTPS, прокси-сервером, TLS или проблемами конфигурации самого сервера Nextcloud.

Снизьте скачки загрузки ЦП в предварительной версии Nextcloud с помощью запланированной очереди.

Перенесите обработку миниатюр в контролируемый фоновый режим, обрежьте неиспользуемые размеры предварительного просмотра и проверьте очередь, не перегружая сервер Nextcloud.

Переход от «обработки файлов» к синхронизации Nextcloud Desktop Sync

Найдите файл, правило исключения, проблему с подключением или состояние базы данных клиента, препятствующие синхронизации Nextcloud, а затем безопасно проверьте загрузку и скачивание файлов.