Usuń ostrzeżenie o blokowaniu plików w NextCloud za pomocą Redis

Aby usunąć ostrzeżenie Nextcloud o blokowaniu plików transakcyjnych, najpierw upewnij się, że blokowanie jest włączone, a następnie skonfiguruj trwałe zaplecze zgodne z Redis, takie jak Redis lub Valkey. Na małej instancji Nextcloud może domyślnie korzystać z zaplecza blokowania bazy danych; w przypadku serwera produkcyjnego lub obciążenia współdzielonego, blokowanie oparte na Redis jest typowym wyborem, ponieważ zmniejsza ruch związany z blokadami do bazy danych. Nie przypisuj blokad plików do Memcached: Nextcloud ostrzega, że ​​wartości z pamięci podręcznej mogą nieoczekiwanie zniknąć.

Wybierz blokadę zaplecza, która pasuje do Twojego serwera

Transakcyjne blokowanie plików chroni operacje na plikach przed konfliktami zapisu i może zwolnić blokady w przypadku przerwania przesyłania lub innej transakcji. Pomaga zapobiegać uszkodzeniom podczas normalnego działania, w tym pracy z plikami współdzielonymi i pamięcią zewnętrzną. Nie uniemożliwia ono jednoczesnej edycji tego samego dokumentu przez dwie osoby ani nie zapewnia wskaźników obecności; kontroluje jednoczesne zapisywanie. Zapoznaj się z dokumentacją transakcyjnego blokowania plików w NextCloud 35 .

  • Zaplecze bazy danych: Nextcloud domyślnie korzysta z blokowania bazy danych. Pozwala to uniknąć dodawania kolejnej usługi i może być wystarczające w przypadku niewielkiej instalacji osobistej, ale blokowanie bazy danych zwiększa obciążenie. Jeśli kasujesz ostrzeżenie tylko na serwerze o niewielkim użytkowaniu, najpierw upewnij się, że blokowanie nie zostało jawnie wyłączone.
  • Redis z phpredis: Dobry wybór dla ugruntowanych wdrożeń na pojedynczym serwerze i w klastrach. Wymaga serwera kompatybilnego z Redis i rozszerzenia PHP Redis, a także odpowiednich ustawień połączenia w NextCloud.
  • KeyValueCache z Redis lub Valkey: Dostępne od wersji Nextcloud 34.0.2. Wykorzystuje dołączoną bibliotekę Nextcloud, więc nie wymaga rozszerzenia PHP Redis. Jest to przydatne, gdy rozszerzenie jest niedostępne, choć Nextcloud zaznacza, że ​​zdalny serwer klucz-wartość może generować obciążenie sieciowe.
  • Memcached: Może obsługiwać rozproszone buforowanie, ale nie nadaje się do blokad plików transakcyjnych, ponieważ wartości z pamięci podręcznej mogą zostać usunięte. Nie należy go używać w memcache.locking.

W przypadku małego serwera domowego blokowanie bazy danych może być wystarczające, jeśli nie ma ostrzeżenia o blokowaniu i nie ma obciążenia bazy danych. Wybierz Redis lub Valkey w przypadku obciążonych instancji, wielu serwerów aplikacji lub gdy chcesz, aby blokady plików były obsługiwane poza bazą danych. Aktualne wytyczne dotyczące buforowania pamięci Nextcloud 35 zalecają APCu do lokalnej pamięci podręcznej i Redis do blokowania w typowych wdrożeniach na jednym serwerze. Wszystkie klastrowane węzły internetowe muszą korzystać z tego samego punktu końcowego lub klastra Redis lub Valkey.

Sprawdź, czy blokada została wyłączona

Znajdź aktywny plik konfiguracyjny Nextcloud, zazwyczaj config/config.phpw katalogu instalacyjnym Nextcloud. Przed zmianą wykonaj kopię zapasową. Wyszukaj filelocking.enabledi memcache.locking. Informacje dotyczące konfiguracji domyślnie ustawiają blokowanie na włączone; jeśli znajdziesz jawną wartość „fałsz”, zmień ją na „prawda” lub usuń to nadpisanie.

'filelocking.enabled' => true,

Nie dodawaj drugiej kopii istniejącego klucza. Tablice konfiguracji PHP powinny zawierać jedną skuteczną wartość dla każdego ustawienia. Jeśli korzystasz z kontenera lub panelu hostingu zarządzanego, wprowadź zmiany za pomocą obsługiwanego mechanizmu konfiguracji, aby zostały one zachowane po aktualizacjach lub ponownym wdrożeniu. W dokumencie „Ostrzeżenia administratora NextCloud 35” znajduje się ostrzeżenie o blokowaniu oraz linki do wymagań zaplecza.

Skonfiguruj blokowanie Redis na pojedynczym serwerze

W systemach Debian i Ubuntu nazwy pakietów zazwyczaj wyglądają tak: redis-serveri php-redis; użyj pakietów swojej dystrybucji i dopasuj moduł PHP do wersji PHP używanej przez serwer WWW. Jeśli korzystasz z klasycznego zaplecza Redis, zainstaluj i uruchom usługę Redis oraz sprawdź, czy rozszerzenie PHP Redis jest włączone dla interfejsu SAPI. Moduł PHP dostępny tylko w interfejsie wiersza poleceń nie gwarantuje, że PHP-FPM lub Apache mogą go załadować.

Dodaj blokujący backend i szczegóły połączenia do istniejącej config.phptablicy. W tym przykładzie założono, że Redis działa na tej samej maszynie, nasłuchuje na porcie localhost 6379 i jest dostępny dla procesu PHP Nextcloud:

'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
    'host' => 'localhost',
    'port' => 6379,
    'timeout' => 0.0,
],

Ustaw dane uwierzytelniania, jeśli serwer Redis ich wymaga. Unikaj udostępniania Redis w publicznym internecie; ogranicz go do hosta lub sieci prywatnej i skonfiguruj reguły uwierzytelniania i zapory sieciowej. W przypadku gniazda Unix użyj ścieżki gniazda jako hosta Redis i portu 0 oraz upewnij się, że użytkownik serwera WWW ma dostęp do tego gniazda. Nie kopiuj ustawień localhost do wdrożenia wieloserwerowego, chyba że Redis jest rzeczywiście lokalny i spójnie współdzielony; wszystkie węzły aplikacji Nextcloud muszą obsługiwać ten sam backend.

Gdy rozszerzenie PHP Redis jest niedostępne

W NextCloud w wersji 34.0.2 lub nowszej KeyValueCache może łączyć się z Redis lub Valkey bez oddzielnie instalowanego rozszerzenia PHP. Skonfiguruj zaplecze i magazyn klucz-wartość w następujący sposób, zastępując hosta i wszelkie dane uwierzytelniające wartościami swojego środowiska:

'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
    'server' => [
        'host' => 'localhost',
        'port' => 6379,
    ],
],

Nie konfiguruj Redis i KeyValueCache jako konkurencyjnych dostawców blokad. Postępuj zgodnie z dokumentacją Nextcloud dotyczącą poświadczeń, TLS, gniazd, Sentinel lub topologii klastra, zamiast dostosowywać przykład pojedynczego serwera na podstawie domysłów.

Uruchom ponownie i sprawdź poprawność

Uruchom ponownie usługę zgodną z Redis, jeśli zmieniłeś jej konfigurację, a następnie uruchom ponownie serwer WWW lub proces PHP-FPM, jeśli zainstalowałeś lub włączyłeś rozszerzenie PHP. Sprawdź status usługi, używając nazwy usługi dla swojej dystrybucji, na przykład systemctl status redis-serverw wielu systemach Debian lub Ubuntu. Upewnij się, że usługa jest aktywna i że proces PHP może się połączyć. Wdrożenia kontenerowe powinny używać nazwy usługi Redis w sieci kontenerowej, a nie localhost, chyba że obie usługi współdzielą przestrzeń nazw sieciowych.

Zaloguj się do Nextcloud jako administrator i odśwież przegląd Administracji. Ostrzeżenie o blokowaniu pliku transakcyjnego powinno zniknąć, gdy skonfigurowany backend będzie dostępny i ustawienie zostanie załadowane. Prześlij, pobierz i zsynchronizuj plik testowy, a następnie przejrzyj logi Nextcloud i PHP, jeśli pojawi się błąd połączenia lub uprawnień Redis. Ostrzeżenie, które pozostaje, zazwyczaj wskazuje na literówkę, zduplikowany klucz konfiguracji, nieprawidłowe rozszerzenie PHP/SAPI, zablokowane połączenie sieciowe, nieprawidłowe uprawnienia gniazda lub niedostępny backend. Usuń tę konkretną przyczynę zamiast wyłączać blokowanie.

Aby zapoznać się z opcjami specyficznymi dla danego wdrożenia, przed zmianą topologii należy zapoznać się z oficjalnymi dokumentami dotyczącymi danej wersji: blokowania plików transakcyjnych , buforowania pamięci i konfiguracji Redis/Valkey oraz parametrów konfiguracji .

Zostaw komentarz

Uruchom automatycznie Nextcloud Cron za pomocą timera Systemd

Sprawdź tryb cron Nextcloud, napraw usługę systemd i timer oraz zweryfikuj, czy zadania w tle są uruchamiane po uruchomieniu i co pięć minut.

Usuń ostrzeżenie o blokowaniu plików w NextCloud za pomocą Redis

Włącz niezawodne blokowanie plików Nextcloud, wybierz odpowiedni serwer Redis lub Valkey i sprawdź, czy ostrzeżenie zostanie usunięte bez ryzyka równoczesnych zmian w plikach.

Co jest potrzebne, aby uzyskać ocenę bezpieczeństwa Nextcloud A+

Co jest potrzebne, aby uzyskać ocenę bezpieczeństwa Nextcloud A+

Napraw typowe błędy skanowania Nextcloud dzięki bieżącym aktualizacjom, protokołom HTTPS i HSTS, precyzyjnemu zaufaniu do odwrotnego serwera proxy i sprawdzeniu względem serwera publicznego.

Włącz szyfrowanie po stronie serwera Nextcloud z mierzalnym wpływem

Skonfiguruj Nextcloud SSE dla pamięci masowej, która tego wymaga, chroń klucze szyfrujące i zmierz wpływ transferu i procesora przed zaszyfrowaniem istniejących plików.

Dodaj wyszukiwanie pełnotekstowe Elasticsearch do NextCloud

Połącz wyszukiwarkę plików Nextcloud z Elasticsearch, zindeksuj zawartość dokumentów i wybierz konfigurację odpowiadającą Twoim potrzebom w zakresie serwera i bezpieczeństwa.

Ustaw niezawodną politykę wygasania dla usuniętych plików w usłudze NextCloud

Ustaw niezawodną politykę wygasania dla usuniętych plików w usłudze NextCloud

Skonfiguruj Nextcloud tak, aby usuwał usunięte pliki po upływie określonego czasu przechowywania, niezawodnie planował zadania w tle i unikał poleceń, które usuwają śmieci każdego użytkownika.

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.