Napraw limit przesyłania danych w NextCloud wynoszący 2 GB: Jak zezwolić na przesyłanie dużych plików

Przesyłanie danych do Nextcloud, które kończy się na 2 GB, jest zazwyczaj ograniczone przez jedną warstwę ścieżki żądania, a nie przez pojedyncze, uniwersalne ustawienie Nextcloud. Aby akceptować większe pliki, należy ustawić wartość docelową powyżej rozmiaru pliku na każdej warstwie obsługującej przesyłanie: PHP, serwerze WWW oraz dowolnym odwrotnym serwerze proxy lub panelu hostingowym. Następnie należy sprawdzić, czy pamięć masowa, przestrzeń tymczasowa i limity czasu żądań umożliwiają transfer.

W tym przewodniku użyto docelowego rozmiaru 5 GB jako przykładu dla plików o rozmiarze do około 4 GB. Wybierz limit odpowiadający Twojemu rzeczywistemu przypadkowi użycia, zostaw margines na obciążenie żądaniami, jeśli to możliwe, i zachowaj spójność ustawień w całym stosie. Przykłady dotyczą samodzielnie zarządzanego serwera Nextcloud z wykorzystaniem PHP; zarządzany hosting, kontenery i urządzenia mogą udostępniać różne ścieżki konfiguracji.

Dlaczego przesłanie 2 GB może się nie powieść

Aktualny podręcznik administracyjny Nextcloud wyjaśnia, że ​​przesyłanie dużych plików może być ograniczone przez konfigurację PHP i serwera WWW. W przypadku przesyłania fragmentarycznego, przeglądarka lub klient wysyła fragmenty, które Nextcloud asembluje; niektóre dyrektywy PHP dotyczące rozmiaru pliku mogą nie regulować tych żądań, podczas gdy limity czasu serwera WWW lub PHP nadal tak. Serwer proxy, zapora sieciowa, zaplecze pamięci masowej, limit użytkownika lub pełny dysk tymczasowy mogą narzucać kolejne ograniczenia. Zapoznaj się z podręcznikiem administracyjnym Nextcloud dotyczącym przesyłania dużych plików oraz podręcznikiem użytkownika Nextcloud dotyczącym przesyłania dużych plików .

„2 GB” może również oznaczać 2 000 000 000 bajtów lub 2 GiB (2 147 483 648 bajtów). Wyświetlany limit i rzeczywisty próg bajtów mogą się nie zgadzać. Zapisz błąd, rozmiar pliku w bajtach oraz informację, czy awaria wystąpiła natychmiast, czy po rozpoczęciu przetwarzania. Te dane pomogą Ci zidentyfikować warstwę, którą należy sprawdzić.

1. Zidentyfikuj pierwszą warstwę, która odrzuca przesyłanie

Przed zmianą ustawień zwróć uwagę na sposób przesyłania pliku: interfejs internetowy NextCloud, klient synchronizacji na komputerze lub urządzeniu mobilnym, czy aplikacja WebDAV. Przetestuj plik nieco większy od poprzedniego progu, ale nie przesyłaj wielokrotnie plików o rozmiarze wielu gigabajtów podczas rozwiązywania problemów. Sprawdź przegląd i dziennik administracyjny NextCloud, dziennik błędów serwera WWW, dzienniki PHP-FPM lub Apache oraz dowolny panel proxy lub hostingu w momencie awarii.

  • Natychmiastowa odpowiedź HTTP 413 często wskazuje na ograniczenie serwera WWW lub serwera proxy dotyczące treści żądania.
  • Ostrzeżenie PHP o przekroczeniu dozwolonego rozmiaru pliku wskazuje na ustawienia przesyłania PHP dla konwencjonalnego żądania multipart.
  • Transfer, który się rozpoczyna, ale zatrzymuje się lub przekracza limit czasu, wskazuje na przekroczenie limitu czasu żądania, przerwanie połączenia lub obciążenie zasobów.
  • Jasny komunikat o kwocie oznacza, że ​​przeszkodą jest dostępna przestrzeń dyskowa Nextcloud użytkownika, a nie limit przesyłania danych na serwer.

To tylko wskazówki, a nie ostateczne diagnozy: serwer proxy może zastąpić błąd aplikacji, a logi różnią się w zależności od wdrożenia. Przed edycją konfiguracji należy porównać znaczniki czasu między warstwami.

2. Ustaw limity PHP dla przesyłania formularzy przeglądarki

Znajdź konfigurację PHP używaną przez proces Nextcloud skierowany do sieci. W systemach Debian i Ubuntu typowy plik PHP-FPM znajduje się w katalogu /etc/php/<version>/fpm/php.ini; serwer Apache z modułem mod_php zazwyczaj używa osobnego pliku apache2/php.ini. Konfiguracja wiersza poleceń PHP może być inna, więc edycja pliku zgłoszonego przez php --inimoduł może nie spowodować zmiany w witrynie. Wskazówki dotyczące konfiguracji PHP w Nextcloud opisują kontekst konfiguracji po stronie serwera.

W przypadku limitu 5 GB należy sprawdzić następujące ustawienia w aktywnej konfiguracji PHP witryny:

upload_max_filesize = 5G
post_max_size = 5G
max_input_time = 3600
max_execution_time = 3600

post_max_sizePowinien być co najmniej tak duży jak upload_max_filesize; ustawienie obu na ten sam cel to praktyczny punkt wyjścia dla przesyłania pojedynczego pliku w wielu częściach. Powyższe wartości czasu są przykładowe i nie gwarantują zakończenia przesyłania: wybierz czas trwania odpowiadający dostępnej przepustowości i polityce operacyjnej. Nie zwiększaj rozmiaru pliku PHP memory_limitdo 5 GB tylko dlatego, że plik ma 5 GB. Dokumenty PHP max_input_timeuwzględniają czas spędzony na odbieraniu danych wejściowych i to, że zachowanie przesyłania zależy od powiązanych dyrektyw; zapoznaj się z dokumentacją dotyczącą pułapek przesyłania w PHP .

3. Podnieś limit żądań serwera WWW

Nginx z PHP-FPM

W aktywnym bloku serwera Nginx dla Nextcloud ustaw limit treści żądania powyżej największego pliku, który zamierzasz zaakceptować. Dla przykładu 5 GB:

client_max_body_size 5G;

Umieść go w odpowiednim kontekście http, server, lub location, unikając konfliktu niższej wartości w bardziej szczegółowym bloku. Nginx dokumentuje tę dyrektywę w swoim głównym module referencyjnym . Przykład instalacji Nginx w NextCloud zawiera również ustawienia rozmiaru i limitu czasu przesyłania. Sprawdź poprawność konfiguracji za pomocą sudo nginx -tprzed ponownym załadowaniem Nginx.

Apacz

Sprawdź, czy aktywny host wirtualny, konfiguracja katalogu lub dołączone zestawy konfiguracyjne są włączone LimitRequestBody. W wersjach Apache, w których domyślny lub jawny limit jest niższy niż docelowy, zwiększ go do wymaganej liczby bajtów lub 0nie używaj limitu na poziomie Apache, tylko jeśli jest to akceptowalne dla danego wdrożenia. Upewnij się, że dyrektywa jest umieszczona w kontekście dozwolonym przez wersję i konfigurację Apache. Apache opisuje jej działanie w dokumentacji LimitRequestBody . Uruchom apachectl configtestprzed ponownym załadowaniem usługi.

4. Sprawdź serwery proxy odwrotne, kontenery i pamięć masową

Jeśli ruch przechodzi przez inną instancję Nginx, moduł równoważenia obciążenia, panel sterowania hostingiem lub serwer proxy zabezpieczeń, jego limity rozmiaru i limitu czasu muszą również zezwalać na przesyłanie. Żądanie może zostać odrzucone, zanim dotrze do NextCloud. Zaktualizuj tylko warstwę, która jest właścicielem tego ustawienia, a następnie sprawdź jej logi i kod odpowiedzi. W przypadku wdrożenia Dockera lub innego kontenera zmień konfigurację zamontowaną w działającym kontenerze lub obsługiwane ustawienia środowiska dla tego obrazu; plik PHP hosta może w ogóle nie być używany przez kontener.

Duże przesyłanie danych również zużywa zasoby. Upewnij się, że wolumin danych Nextcloud ma wystarczającą ilość wolnego miejsca i że katalog tymczasowy PHP lub serwera WWW jest w stanie obsłużyć obciążenie. W przypadku przesyłania fragmentów, przestrzeń tymczasowa może być potrzebna podczas składania fragmentów; wdrożenia pamięci masowej obiektów mogą wymagać dodatkowego dysku tymczasowego. Zaplanuj jednoczesne przesyłanie, a nie tylko jednego pliku o maksymalnym rozmiarze. Przed zwiększeniem limitu w obciążonej instalacji zapoznaj się z sekcją Nextcloud dotyczącą przestrzeni tymczasowej i przesyłania dużych plików .

5. Zastosuj zmiany i zweryfikuj je za pomocą testu kontrolowanego

Po pomyślnym sprawdzeniu konfiguracji, przeładuj lub uruchom ponownie odpowiednie usługi PHP-FPM i serwera WWW, aby mogły odczytać zaktualizowane ustawienia. Dokładne nazwy usług różnią się w zależności od dystrybucji i wersji PHP. Unikaj restartowania niepowiązanych usług produkcyjnych. Następnie prześlij plik o rozmiarze nieznacznie przekraczającym poprzedni limit 2 GB – na przykład znany plik testowy o rozmiarze około 2,1 GB – używając tego samego klienta i trasy, która pierwotnie nie powiodła się. Utrzymuj test poniżej nowego limitu i monitoruj ilość wolnego miejsca na dysku, logi i postęp transferu.

Pomyślny test powinien zakończyć się bez błędu rozmiaru HTTP lub przekroczenia limitu czasu, pojawić się w docelowym folderze Nextcloud i mieć wiarygodny rozmiar pliku po sprawdzeniu z poziomu klienta. W przypadku ważnego pliku należy porównać sumę kontrolną w źródle i miejscu docelowym, jeśli przepływ pracy to obsługuje. Sam pasek postępu sięgający 100% nie potwierdza, że ​​zapisany plik jest kompletny.

Kiedy ta poprawka nie wystarczy

  • Przesyłanie przez internet działa, ale klient stacjonarny nie działa: sprawdź zachowanie klienta, serwera proxy i limitu czasu serwera. Klienci NextCloud korzystają z przesyłania fragmentarycznego, więc upload_max_filesizesama zmiana kodu PHP może nie rozwiązać problemu z żądaniem fragmentu lub limitem czasu asemblera końcowego.
  • Błąd informuje, że użytkownikowi zabrakło miejsca. Dostosuj limit przestrzeni dyskowej Nextcloud tego użytkownika lub jego wolną przestrzeń; zwiększenie limitu żądań nie spowoduje utworzenia wolnej przestrzeni.
  • Awaria występuje przy takiej samej liczbie bajtów dla każdego klienta: poszukaj limitu współdzielonego serwera proxy, zapory WAF, dostawcy hostingu lub serwera WWW i porównaj jego logi z żądaniem.
  • Przesyłanie danych zostało ukończone, ale dane zajmują zbyt dużo miejsca na dysku tymczasowym: zmniejsz liczbę jednoczesnych przesyłań, zapewnij odpowiednią ilość miejsca na dysku tymczasowym lub przejrzyj udokumentowane zachowanie funkcji dzielenia na fragmenty i przechowywania danych w zapleczu.

Podniesienie limitu przesyłania zwiększa ilość danych, które użytkownicy mogą wysyłać na serwer, dlatego powinno być powiązane z limitami, monitorowaniem, wystarczającą ilością miejsca na dane i rozsądną kontrolą dostępu. Nie ma uniwersalnego, bezpiecznego maksimum: praktyczny pułap zależy od najwolniejszego limitu na ścieżce żądania oraz pojemności serwera i systemu pamięci masowej.

Odniesienia

Zostaw komentarz

10 najlepszych narzędzi do pingowania w celu znajdowania urządzeń w sieci

10 najlepszych narzędzi do pingowania w celu znajdowania urządzeń w sieci

Porównaj 10 narzędzi do pingowania, które umożliwiają szybkie wykrywanie sieci LAN, skanowanie międzyplatformowe i zarządzanie adresami IP. Dowiedz się, co narzędzie pingujące może Ci powiedzieć, a czego nie.

6 najlepszych narzędzi do zarządzania siecią, umożliwiających śledzenie wydajności

6 najlepszych narzędzi do zarządzania siecią, umożliwiających śledzenie wydajności

Porównaj sześć narzędzi do zarządzania siecią służących do monitorowania wydajności, obejmujących zasięg SNMP, mapowanie, alerty, modele wdrażania i kompromisy kosztów.

Ping Monitor: 7 darmowych i otwartych narzędzi do monitorowania dostępności sieci

Ping Monitor: 7 darmowych i otwartych narzędzi do monitorowania dostępności sieci

Porównaj siedem darmowych i otwartych monitorów pingów — od kompletnych pakietów sieciowych po ukierunkowane sondy opóźnień — i wybierz odpowiedni monitor pod kątem dostępności, utraty pakietów i historii.

QoS w sieciach: czym jest jakość usług i jak działa

QoS w sieciach: czym jest jakość usług i jak działa

Dowiedz się, co oznacza QoS w sieciach, w jaki sposób oznaczenia DSCP i kolejki ruchu nadają priorytet aplikacjom głosowym, wideo i biznesowym oraz czego QoS nie jest w stanie naprawić.

Najlepsze oprogramowanie serwera SFTP do bezpiecznego przesyłania plików

Najlepsze oprogramowanie serwera SFTP do bezpiecznego przesyłania plików

Porównaj niezawodne oprogramowanie serwera SFTP dla systemów Windows i Linux, w tym OpenSSH, Bitvise, SolarWinds i SFTPGo. Znajdź rozwiązanie odpowiednie dla swoich potrzeb w zakresie bezpieczeństwa i transferu plików.

7 najlepszych narzędzi do zarządzania adresami IP dla zespołów sieciowych

7 najlepszych narzędzi do zarządzania adresami IP dla zespołów sieciowych

Porównaj siedem narzędzi do zarządzania adresami IP służących do wykrywania podsieci, koordynacji DNS i DHCP, inwentaryzacji sieci i otwartego oprogramowania IPAM.

6 najlepszych narzędzi do monitorowania serwerów Windows Server zapewniających lepszą dostępność i wydajność

6 najlepszych narzędzi do monitorowania serwerów Windows Server zapewniających lepszą dostępność i wydajność

Porównaj sześć narzędzi do monitorowania systemu Windows Server pod kątem zbierania danych systemu Windows, widoczności aplikacji, modelu wdrażania i licencjonowania, aby znaleźć odpowiednie rozwiązanie.

10 najlepszych narzędzi do skanowania sieci w celu wykrywania urządzeń i adresów IP

10 najlepszych narzędzi do skanowania sieci w celu wykrywania urządzeń i adresów IP

Porównaj narzędzia do skanowania sieciowego umożliwiające szybkie wykrywanie urządzeń, skanowanie adresów IP na wielu platformach oraz zarządzanie IPAM w przedsiębiorstwie. Znajdziesz tu wskazówki dotyczące dopasowania każdej opcji do swojej sieci.

Najlepsze praktyki monitorowania sieci: co śledzić i jakich narzędzi używać

Najlepsze praktyki monitorowania sieci: co śledzić i jakich narzędzi używać

Zbuduj praktyczny monitoring sieci z przejrzystym zakresem urządzeń, przydatnymi wskaźnikami wydajności, przydatnymi alertami oraz porównaniem SolarWinds NPM, PRTG i OpManager.

Jak używać Nmap do śledzenia trasy i odczytywania ścieżki sieciowej

Jak używać Nmap do śledzenia trasy i odczytywania ścieżki sieciowej

Użyj opcji --traceroute programu Nmap, aby mapować przeskoki do autoryzowanego hosta, zrozumieć dane wyjściowe dotyczące przeskoków i czasu RTT oraz rozwiązywać problemy z brakującymi odpowiedziami bez nadmiernego skanowania.