Konfigurowanie buforowania Nextcloud Redis w systemie Ubuntu 24.04

W Nextcloud 34.0.2 wprowadzono dołączony KeyValueCachebackend kompatybilny z Redis, dzięki czemu obecna wersja Nextcloud może korzystać z Redis bez instalowania rozszerzenia PHP Redis. Na pojedynczym serwerze Ubuntu 24.04 należy użyć APCu do szybkiego lokalnego buforowania oraz Redis do rozproszonego buforowania i blokowania plików transakcyjnych, połączonych przez gniazdo Unix. Dzięki temu Redis jest odłączony od sieci i Nextcloud korzysta ze współdzielonej pamięci podręcznej, która działa w przypadku wszystkich żądań PHP.

Najpierw wybierz odpowiedni serwer Redis

Aktualny podręcznik administratora Nextcloud 35 opisuje dwie ścieżki Redis. W przypadku Nextcloud w wersji 34.0.2 lub nowszej zalecana ścieżka KeyValueCacheto Predis dołączony do Nextcloud; instalujesz serwer Redis i ustawiasz memcache.kvstore, ale nie potrzebujesz php-redis. Starsze wersje Nextcloud używają rozszerzenia PhpRedis i innego config.phpbloku. Sprawdź swoją wersję za pomocą sudo -u www-data php /var/www/nextcloud/occ status, zastępując ścieżkę, jeśli instalacja znajduje się gdzie indziej.

W tym przewodniku założono, że Nextcloud i Redis działają na tym samym hoście Ubuntu, serwer WWW działa jako [ www-datausługa], a PHP i Redis są zarządzane bezpośrednio. Jeśli zainstalowałeś Nextcloud za pomocą Snap, AIO, Dockera lub innego urządzenia, postępuj zgodnie z konwencjami dotyczącymi usług i systemów plików tego pakietu, zamiast bezmyślnie stosować polecenia na poziomie hosta. APCu jest szybsze w przypadku lokalnego buforowania niż Redis, podczas gdy Redis nadaje się do rozproszonego buforowania i blokowania plików. Zapoznaj się z dokumentacją buforowania pamięci Nextcloud .

Zainstaluj Redis i APCu

Zaktualizuj indeks pakietów Ubuntu, zainstaluj serwer Redis i moduł PHP APCu, a następnie włącz Redis podczas rozruchu:

sudo apt update
sudo apt install redis-server php-apcu
sudo systemctl enable --now redis-server
Terminal Ubuntu pokazujący aktualizację apt oraz instalację redis-server i php-apcu.
Przed edycją któregokolwiek z plików konfiguracyjnych zainstaluj serwer Redis i pakiety APCu.

W Ubuntu 24.04 domyślna linia PHP to 8.3 i php-apcujest to nazwa pakietu dystrybucyjnego. Redis to osobna usługa; APCu jest ładowany przez PHP. Po zainstalowaniu APCu należy zrestartować obsługę PHP, aby proces PHP w przeglądarce załadował moduł. Jeśli używasz PHP-FPM, zazwyczaj jest to 8.3 php8.3-fpm; jeśli Apache używa mod_php, należy zrestartować 8.3 apache2. Przed ponownym uruchomieniem sprawdź nazwy aktywnych usług.

Ustaw Redis jako lokalny dla serwera

W przypadku konfiguracji z jednym hostem użyj gniazda Unix i wyłącz nasłuchiwacz TCP Redis. Edytuj /etc/redis/redis.conf. Zaktualizuj istniejące dyrektywy active zamiast pozostawiać wiele sprzecznych kopii, a następnie ustaw:

port 0
unixsocket /run/redis/redis-server.sock
unixsocketperm 770
Edytor konfiguracji Redis pokazujący wyłączony protokół TCP i ścieżkę gniazda Unix z trybem 770.
Użyj tej samej ścieżki gniazda w Redis i Nextcloud i ogranicz dostęp do grupy Redis.

port 0Wyłącza port TCP; Redis nasłuchuje przez ścieżkę gniazda. Tryb uprawnień 770pozwala właścicielowi i grupie Redis na dostęp do gniazda, jednocześnie odmawiając dostępu innym użytkownikom lokalnym. Dodaj konto serwera WWW do grupy Redis:

sudo usermod -aG redis www-data
sudo systemctl restart redis-server

Po zmianie członkostwa w grupie uruchom ponownie usługę PHP-FPM lub Apache, ponieważ uruchomione procesy zachowują starą listę grup. Użyj usługi, która faktycznie uruchamia PHP w NextCloud. Dokumentacja Redis zaleca ograniczenie dostępu do zaufanych klientów; gniazdo lokalne zapobiega ujawnianiu portu pamięci podręcznej w interfejsie internetowym. Zobacz wskazówki dotyczące bezpieczeństwa Redis .

Wskaż Nextcloud w gnieździe

Utwórz kopię zapasową config/config.php, a następnie dodaj te wpisy do istniejącej tablicy konfiguracji PHP. Nie zastępuj reszty pliku. Użyj ścieżki, w której znajduje się instalacja NextCloud.

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\KeyValueCache',
'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
    'server' => [
        'host' => '/run/redis/redis-server.sock',
    ],
],
Edytor config.php Nextcloud pokazujący lokalną pamięć podręczną APCu i wpisy KeyValueCache korzystające z gniazda Redis.
Pozostaw APCu lokalnie i ustaw zarówno zaplecze pamięci podręcznej Redis, jak i hosta gniazda w pliku config.php.

Ukośnik na początku ścieżki hosta informuje usługę KeyValueCache w Nextcloud o korzystaniu z gniazda Unix, więc nie jest wymagane żadne ustawienie portu TCP ani protokołu. Redis udostępnia zarówno [ brakuje wartości], jak memcache.distributedi [brakuje wartości memcache.locking]; ten drugi przenosi blokady plików transakcyjnych z bazy danych. Pozostań memcache.localw APCu, aby uzyskać dostęp do lokalnej pamięci podręcznej z mniejszym opóźnieniem. Dokładne wpisy i opcje gniazd znajdują się w instrukcjach Nextcloud dotyczących KeyValueCache i gniazd Unix oraz w przewodniku blokowania plików transakcyjnych .

Sprawdź połączenie i rozwiąż problemy z uprawnieniami

Najpierw sprawdź, czy usługa Redis jest aktywna i czy gniazdo odpowiada:

sudo systemctl status redis-server
redis-cli -s /run/redis/redis-server.sock ping
Terminal Ubuntu z uruchomionym redis-cli na gnieździe Nextcloud Redis i wyświetlającym PONG.
Odpowiedź PONG potwierdza, że ​​Redis akceptuje połączenie lokalne przez skonfigurowane gniazdo.

Oczekiwana odpowiedź na drugie polecenie to PONG. Następnie zaloguj się do Nextcloud i otwórz przegląd ustawień administracyjnych. Upewnij się, że ostrzeżenie o lokalnej pamięci podręcznej zniknęło i sprawdź dziennik Nextcloud, czy nadal występuje ostrzeżenie dotyczące Redis lub pamięci podręcznej. Możesz również uruchomić polecenie sudo -u www-data php /var/www/nextcloud/occ status, aby upewnić się, że instancja nadal się ładuje; to polecenie sprawdza dostępność Nextcloud, a nie samą pamięć podręczną.

Jeśli Redis zgłasza „Odmowa dostępu” lub Nextcloud nie może się połączyć, sprawdź, czy gniazdo istnieje, www-datanależy do redisgrupy oraz czy grupa i tryb gniazda zezwalają na dostęp. Po zmianie przynależności do grupy uruchom ponownie Redis i obsługę PHP. Jeśli Redis nie może utworzyć gniazda, sprawdź, czy nie ma literówki w skonfigurowanej ścieżce i sprawdź sudo journalctl -u redis-server -n 50. Nie rozwiązuj problemu z uprawnieniami do gniazda, otwierając Redis w sieci publicznej.

Starszy Nextcloud: zamiast tego użyj PhpRedis

Jeśli Twoja wersja Nextcloud jest starsza niż 34.0.2, zainstaluj rozszerzenie PHP Redis zgodne z wersją PHP obsługującą Nextcloud. W standardowej konfiguracji Ubuntu 24.04 PHP 8.3 pakiet ma nazwę php-redis; Ubuntu wyświetla go jako rozszerzenie PHP 8.3 Redis. Po zainstalowaniu uruchom ponownie aktywny moduł obsługi PHP. W config.php, zamiast powyższych wpisów KeyValueCache, użyj starszych klas Redis i bloku połączenia:

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
    'host' => '/run/redis/redis-server.sock',
    'port' => 0,
],

Lista pakietów Noble php-redis w Ubuntu potwierdza mapowanie pakietów. Nie konfiguruj obu zapleczy jednocześnie. Po zapisaniu pasującej konfiguracji powtórz ping gniazda i sprawdzenie przeglądu administratora Nextcloud.

Zostaw komentarz

Ustaw publiczny adres URL NextCloud, aby mógł się do siebie dodzwonić

Napraw ostrzeżenie Nextcloud o brakującym adresie wychodzącym, ustawiając jego kanoniczny adres URL i sprawdzając routing DNS, HTTPS i odwrotnego serwera proxy na samym serwerze.

Konfigurowanie buforowania Nextcloud Redis w systemie Ubuntu 24.04

Konfigurowanie buforowania Nextcloud Redis w systemie Ubuntu 24.04

Skonfiguruj APCu i Redis przez lokalne gniazdo Unix na potrzeby buforowania i blokowania plików w usłudze Nextcloud, wraz z instrukcjami dla bieżących i starszych wersji usługi Nextcloud.

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.