Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Jeśli przesyłanie danych przez przeglądarkę Nextcloud zatrzymuje się na 2 GB, należy zwiększyć limit na każdej warstwie obsługującej żądanie: PHP, serwerze WWW lub odwrotnym proxy oraz na każdym używanym nośniku tymczasowym. Dla docelowego rozmiaru 5 GB, typowa konfiguracja PHP-FPM i Nginx wymaga upload_max_filesize = 5G, post_max_size = 6G, i client_max_body_size 5G, plus wystarczająco dużo miejsca na dysku i czasu na transfer.

Nie ma uniwersalnego limitu 2 GB w NextCloud. Aktualny podręcznik administratora podaje, że domyślny maksymalny rozmiar wysyłanego pliku to 512 MB, a limit poniżej 2 GB jest sztywnym limitem w systemach 32-bitowych. Serwer, który zatrzymuje się na dokładnie 2 GB, najprawdopodobniej osiąga skonfigurowany limit lub pośredniczy. Poniższe kroki wykorzystują 5 GB jako przykład; podstaw za największy rozmiar pliku, którego faktycznie potrzebujesz.

Czy limit 2 GB dotyczy Nextcloud?

Często widoczny limit jest ustalany przez PHP lub serwer WWW, a nie przez ustawienia NextCloud. Maksymalny limit obsługiwany przez NextCloud zależy również od systemu operacyjnego, systemu plików, limitu konta i dostępnej przestrzeni na dysku tymczasowym. Klient synchronizacji pulpitu to osobny przypadek: przesyła pliki w mniejszych porcjach i nie podlega tym samym limitom przesyłania pojedynczych żądań, które opisano tutaj.

Najpierw zidentyfikuj ścieżkę żądania. Sprawdź, czy użytkownicy przesyłają dane przez przeglądarkę, WebDAV, czy klienta stacjonarnego, a także czy witryna przechodzi przez Nginx, Apache, moduł równoważenia obciążenia lub serwer proxy dostawcy hostingu. Jeśli nie jesteś administratorem serwera, prześlij administratorowi informacje o rozmiarze pliku, metodzie przesyłania, czasie wystąpienia błędu i ewentualnym kodzie błędu; tylko on może zmienić limity po stronie serwera.

Które ustawienia PHP należy zmienić?

W przypadku PHP-FPM należy edytować konfigurację używaną przez usługę PHP-FPM obsługującą Nextcloud — nie tylko konfigurację PHP z wiersza poleceń. W systemach Debian i Ubuntu typową ścieżką jest /etc/php/8.2/fpm/php.ini; zastąp ją 8.2zainstalowaną wersją PHP. Twoja dystrybucja lub kontener może korzystać z innej ścieżki. W podręczniku PHP zaznaczono, że ścieżka post_max_sizemusi być większa niż upload_max_filesize, więc należy uwzględnić narzut związany z żądaniami.

Plik konfiguracyjny PHP-FPM otwarty w edytorze kodu, ze ścieżką /etc/php/8.2/fpm/php.ini widoczną.
Przykładowa ścieżka konfiguracji PHP-FPM. Użyj wersji PHP i ścieżki pliku aktywnej w Twojej usłudze Nextcloud.

Ustaw wartości odpowiednie dla swojego serwera. W przykładzie 5 GB:

upload_max_filesize = 5G
post_max_size = 6G
max_input_time = 3600
max_execution_time = 3600
Ustawienia PHP pokazują, że upload_max_filesize jest ustawiony na 5G, post_max_size jest ustawiony na 6G, a limity czasu wejścia i wykonania są ustawione na 3600 sekund.
Przykładowe wartości PHP-FPM dla docelowego rozmiaru przesyłania 5 GB; parametr post_max_size jest ustawiony na wartość większą niż upload_max_filesize.

Wartości limitu czasu są przykładowe, a nie uniwersalne. Powolne połączenia, obciążone serwery i przesyłanie danych, które muszą zostać skompletowane na końcu, mogą wymagać więcej czasu. Ustawienia pamięci PHP i limity zasobów dla każdego procesu roboczego nadal mają znaczenie: nie należy automatycznie ustawiać limitu pamięci dla każdego procesu roboczego PHP-FPM na kilka gigabajtów. Wytyczne dotyczące PHP firmy Nextcloud zalecają co najmniej 512 MB pamięci na proces; przed podniesieniem limitów zasobów należy monitorować hosta i jego pulę PHP-FPM.

Zapisz plik i uruchom ponownie odpowiednią usługę PHP-FPM, aby odczytała nowe ustawienia. Na przykład w systemie z PHP 8.2 usługa może wyglądać następująco php8.2-fpm:

sudo systemctl restart php8.2-fpm

Nazwy usług mogą się różnić. W kontenerach zaktualizuj zamontowaną konfigurację lub obraz i utwórz ponownie kontener PHP zgodnie z procesem wdrożenia.

Jak zwiększyć limit serwera WWW?

W przypadku Nginx należy umieścić dyrektywę body-size w serverbloku active dla Nextcloud lub w bardziej konkretnym locationbloku:

client_max_body_size 5G;
Konfiguracja serwera Nginx w edytorze z dyrektywą client_max_body_size 5G; widoczna wewnątrz bloku serwera.
Umieść limit rozmiaru ciała Nginx w aktywnym bloku serwera, który obsługuje żądania Nextcloud.

Następnie sprawdź poprawność konfiguracji i przeładuj Nginx:

sudo nginx -t
sudo systemctl reload nginx

Jeśli Nginx zgłosi błąd składni, napraw go przed ponownym załadowaniem. Jeśli inny serwer proxy, kontroler wejściowy lub brama hostingowa znajduje się przed nim, może wymusić własny limit dotyczący treści żądania; należy go również podnieść. Limit na serwerze proxy nadrzędnym może odrzucić przesłanie, nawet jeśli host Nextcloud jest poprawnie skonfigurowany.

W przypadku serwera Apache należy sprawdzić LimitRequestBodykonfigurację odpowiedniego hosta wirtualnego lub katalogu. Aktualna dokumentacja Nextcloud informuje, że serwer Apache HTTP Server 2.4.54 i nowsze domyślnie ustawiają tę dyrektywę na 1 GiB; może to zablokować pojedyncze żądanie przesłania danych powyżej tego rozmiaru. Ustaw celowo limit bajtów odpowiedni dla hosta lub użyj go 0tylko wtedy, gdy celowo nie chcesz, aby limit rozmiaru ciała Apache został narzucony. Apache może również wymagać dłuższych limitów czasu żądań, zwłaszcza jeśli mod_reqtimeoutjest włączony.

Czy problemy z przechowywaniem danych lub przekroczeniem limitu czasu mogą uniemożliwić przesłanie danych?

Tak. Katalog tymczasowy PHP, skonfigurowany katalog tymczasowy Nextcloud i Nginx client_body_temp_pathmuszą mieć wystarczająco dużo wolnego miejsca i być zapisywalne. Należy zostawić miejsce na jednoczesne przesyłanie danych oraz, w niektórych konfiguracjach pamięci masowej, na składanie przesłanych fragmentów. Sprawdź odpowiedni system plików za pomocą df -h, i upewnij się, że konto usługi może zapisywać w skonfigurowanym katalogu tymczasowym. Nie należy ustawiać ustawień tymczasowych na pełny wolumin ani wolumin tylko do odczytu.

Sprawdź również limit przestrzeni dyskowej Nextcloud użytkownika oraz dostępną przestrzeń dyskową na serwerze. Zwiększenie limitu rozmiaru żądania nie zwiększa limitu użytkownika ani nie zwiększa pojemności dysku. Zwiększ limit tylko wtedy, gdy konto ma mieć miejsce na plik. Jeśli błąd wystąpi pod koniec przesyłania lub zgłosi przekroczenie limitu czasu lub błąd bramy, sprawdź logi PHP, serwera WWW, serwera proxy i Nextcloud przed zwiększeniem limitów. Podręcznik Nextcloud wyraźnie wskazuje przekroczenia limitu czasu PHP i Nginx fastcgi_read_timeoutjako możliwe przyczyny, również podczas końcowych żądań MOVE.

Jedno zastrzeżenie: PHP upload_max_filesizei post_max_sizemogą nie zarządzać żądaniami PUT pojedynczego pliku WebDAV ani żądaniami przesyłania fragmentów danych w Nextcloud w ten sam sposób; w przypadku tych ścieżek czynnikiem ograniczającym mogą być przekroczenia limitu czasu PHP i serwera WWW. Przed zmianą wartości, które jej nie dotyczą, należy zdiagnozować metodę przesyłania.

Jak można potwierdzić poprawność rozwiązania?

Zacznij od jednego pliku testowego, którego rozmiar jest znacznie powyżej starego limitu, a następnie przetestuj plik zbliżony do nowego. Prześlij go przez tę samą przeglądarkę lub klienta, którego transfer nie powiódł się. Upewnij się, że transfer się zakończył, plik ma oczekiwany rozmiar i można go pobrać lub otworzyć. Zielony wskaźnik ukończonego przesyłania w widoku Pliki to przydatna opcja na początek, ale porównaj również rozmiar zapisanego pliku.

Widok plików Nextcloud pokazujący plik archive-3gb.zip o rozmiarze 3 GB i zielonym znaczniku ukończenia.
Po wprowadzeniu zmian sprawdź, czy plik testowy większy od poprzedniego limitu ma oczekiwany rozmiar i jest oznaczony jako ukończony.

Jeśli test nadal się nie powiedzie, użyj błędu, aby znaleźć kolejną warstwę ograniczającą: kod HTTP 413 wskazuje na limit w treści żądania, kod 504 lub błąd bliski ukończenia sugeruje przekroczenie limitu czasu, a komunikat o kwocie lub miejscu na dysku wskazuje na pojemność pamięci masowej. Przejrzyj logi pod kątem tego samego znacznika czasu, a następnie dostosuj tylko ustawienie odpowiedzialne za ten problem. Utrzymuj limit blisko największego oczekiwanego transferu i zachowaj wystarczającą ilość miejsca tymczasowego na potrzeby jednoczesnej aktywności.

Oficjalna dokumentacja

Zostaw komentarz

Ostrzeżenie o braku indeksów bazy danych NextCloud

Ostrzeżenie o braku indeksów bazy danych NextCloud

Wykonaj bezpieczną naprawę OCC w Nextcloud, przejrzyj zmiany w bazie danych i sprawdź, dlaczego ostrzeżenie może nadal się pojawiać.

Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Zezwól na przesyłanie większych plików przez przeglądarkę Nextcloud, dostosowując ustawienia PHP, Nginx lub Apache, tymczasowego miejsca przechowywania i limitu czasu — i sprawdź, który limit blokuje plik.

Wyczyść ostrzeżenie Nextcloud dotyczące pamięci PHP na serwerze WWW

Ustaw limit pamięci PHP, z którego faktycznie korzysta Nextcloud, uruchom ponownie odpowiednią usługę i potwierdź ustawienie 512 MB w przeglądzie administratora.

Podłącz kontener zgodny z S3 do zewnętrznej pamięci masowej NextCloud

Zamontuj zgodny obiekt pamięci masowej w Nextcloud, korzystając z zaplecza S3, z odpowiednim punktem końcowym, poświadczeniami, zakresem dostępu i krokami weryfikacji.

Przenieś dane z Nextcloud na dysk zewnętrzny bez naruszania pamięci masowej

Przenieś dane z Nextcloud na dysk zewnętrzny bez naruszania pamięci masowej

Bezpiecznie przenieś katalog danych Linux Nextcloud na dysk zewnętrzny, korzystając z trwałego montowania UUID, trybu konserwacji, zweryfikowanej kopii i dowiązania symbolicznego do ścieżki oryginalnej.

Błąd bazy danych NextCloud po aktualizacji: co sprawdzić w pierwszej kolejności

Przywróć dostęp do Nextcloud po aktualizacji, diagnozując błędy SQL, sprawdzając łączność z bazą danych i bezpiecznie kończąc przerwane migracje.

Zresetuj utracone hasło administratora NextCloud za pomocą OCC

Użyj polecenia OCC usługi Nextcloud, aby zresetować hasło administratora z poziomu powłoki serwera. Znajdziesz tam wskazówki dotyczące nazw użytkowników, uprawnień i zewnętrznych dostawców logowania.

Dodaj nagłówek HSTS w punkcie końcowym HTTPS obsługującym Nextcloud

Wyczyść ostrzeżenie HSTS usługi Nextcloud, ustawiając nagłówek na serwerze Apache, NGINX lub serwerze proxy TLS, a następnie bezpiecznie zweryfikuj publiczną odpowiedź HTTPS.

Rozwiązywanie problemów z instalacjami aplikacji NextCloud, które zgłaszają brak połączenia z Internetem

Rozwiązywanie problemów z instalacjami aplikacji NextCloud, które zgłaszają brak połączenia z Internetem

Śledź błędy instalacji App Store, aby wykryć problemy z DNS, HTTPS, serwerem proxy, TLS lub konfiguracją na samym serwerze Nextcloud.

Podgląd Tame Nextcloud powoduje skoki obciążenia procesora w przypadku zaplanowanej kolejki

Przenieś pracę nad miniaturami do kontrolowanego harmonogramu w tle, zmniejsz nieużywane rozmiary podglądu i zweryfikuj kolejkę bez przeciążania serwera Nextcloud.