Nextcloud Redis-caching instellen op Ubuntu 24.04

Nextcloud 34.0.2 introduceerde een gebundelde, Redis-compatibele KeyValueCachebackend, waardoor de huidige Nextcloud-versie Redis kan gebruiken zonder de Redis-extensie van PHP te hoeven installeren. Op een enkele Ubuntu 24.04-server kunt u APCu gebruiken voor de snelle lokale cache en Redis voor gedistribueerde caching en transactionele bestandsvergrendeling, verbonden via een Unix-socket. Dit houdt Redis buiten het netwerk en geeft Nextcloud een gedeelde cache die werkt voor alle PHP-verzoeken.

Kies eerst de juiste Redis-backend.

De huidige Nextcloud 35-beheerhandleiding beschrijft twee Redis-paden. Voor Nextcloud 34.0.2 of later wordt aanbevolen KeyValueCacheom Predis te gebruiken, dat met Nextcloud is meegeleverd; u installeert de Redis-server en stelt deze in memcache.kvstore, maar u hoeft geen Redis -pad te gebruiken php-redis. Oudere Nextcloud-versies gebruiken de PhpRedis-extensie en een ander config.phpblok. Controleer uw versie met `pip sudo -u www-data php /var/www/nextcloud/occ statusinstall redis`, waarbij u het pad vervangt als uw installatie zich elders bevindt.

Deze handleiding gaat ervan uit dat Nextcloud en Redis op dezelfde Ubuntu-host draaien, dat de webserver als `<hostname>` draait www-dataen dat u PHP en Redis rechtstreeks beheert. Als u Nextcloud via Snap, AIO, Docker of een ander appliance-pakket hebt geïnstalleerd, volg dan de service- en bestandssysteemconventies van dat pakket in plaats van blindelings host-level commando's toe te passen. APCu is sneller voor lokale caching dan Redis, terwijl Redis geschikt is voor gedistribueerde caching en bestandsvergrendelingen. Zie de Nextcloud-documentatie over geheugencaching .

Installeer Redis en APCu

Werk de pakketindex van Ubuntu bij, installeer de Redis-server en de APCu PHP-module en schakel Redis in bij het opstarten:

sudo apt update
sudo apt install redis-server php-apcu
sudo systemctl enable --now redis-server
In de Ubuntu-terminal wordt de installatie van redis-server en php-apcu met apt update weergegeven.
Installeer de Redis-server en APCu-pakketten voordat u een van beide configuratiebestanden bewerkt.

Op Ubuntu 24.04 is de standaard PHP-versie 8.3, en php-apcudat is de pakketnaam van de distributie. Redis is een aparte service; APCu wordt door PHP geladen. Herstart de PHP-handler na het installeren van APCu, zodat het webgerichte PHP-proces de module laadt. Als u PHP-FPM gebruikt, is dat doorgaans php8.3-fpm; als Apache mod_php gebruikt, herstart dan apache2. Controleer de namen van uw actieve services voordat u herstart.

Zorg dat Redis lokaal op de server aanwezig is.

Voor deze configuratie met één host gebruikt u een Unix-socket en schakelt u de TCP-listener van Redis uit. Bewerk het bestand /etc/redis/redis.conf. Werk de bestaande actieve instructies bij in plaats van meerdere conflicterende kopieën te laten staan ​​en stel vervolgens het volgende in:

port 0
unixsocket /run/redis/redis-server.sock
unixsocketperm 770
De Redis-configuratie-editor toont TCP uitgeschakeld en een Unix-socketpad met modus 770.
Gebruik hetzelfde socketpad in Redis en Nextcloud en beperk de toegang tot de Redis-groep.

port 0Schakelt de TCP-poort uit; Redis luistert in plaats daarvan via het socketpad. De permissiemodus 770geeft de eigenaar en groep van Redis toegang tot de socket, terwijl andere lokale gebruikers geen toegang hebben. Voeg het webserveraccount toe aan de Redis-groep:

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

Herstart de PHP-FPM-service of Apache na het wijzigen van het groepslidmaatschap, omdat actieve processen hun oude groepslijst behouden. Gebruik de service die daadwerkelijk de PHP-implementatie van Nextcloud uitvoert. De Redis-documentatie raadt aan de toegang te beperken tot vertrouwde clients; een lokale socket voorkomt dat een cachepoort wordt blootgesteld aan een interface die toegankelijk is via internet. Zie de beveiligingsrichtlijnen van Redis .

Richt Nextcloud op de socket

Maak een back-up config/config.phpen voeg deze vermeldingen toe aan de bestaande PHP-configuratie-array. Vervang de rest van het bestand niet. Gebruik het pad waar uw Nextcloud-installatie zich bevindt.

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\KeyValueCache',
'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
    'server' => [
        'host' => '/run/redis/redis-server.sock',
    ],
],
De Nextcloud config.php-editor toont de APCu lokale cache- en KeyValueCache-items die gebruikmaken van de Redis-socket.
Houd APCu lokaal en stel zowel de Redis-cachebackend als de sockethost in config.php in.

De schuine streep aan het begin van het hostpad geeft Nextcloud's KeyValueCache de opdracht om een ​​Unix-socket te gebruiken, waardoor er geen TCP-poort of protocolinstelling nodig is. Redis biedt zowel `@Socket` memcache.distributedals memcache.locking`@Socket`; de laatste optie verplaatst transactionele bestandsvergrendelingen weg van de database. Houd ` memcache.local@Socket` ingeschakeld voor lokale cachetoegang met een lagere latentie. De exacte vermeldingen en socketopties staan ​​beschreven in de instructies van Nextcloud voor KeyValueCache en Unix-sockets, en in de handleiding voor transactionele bestandsvergrendeling .

Controleer de verbinding en los eventuele problemen met de machtigingen op.

Controleer eerst of de Redis-service actief is en of de socket reageert:

sudo systemctl status redis-server
redis-cli -s /run/redis/redis-server.sock ping
Ubuntu-terminal waarop redis-cli draait tegen de Nextcloud Redis-socket en PONG wordt weergegeven.
Een PONG-reactie bevestigt dat Redis een lokale verbinding via de geconfigureerde socket accepteert.

Het verwachte antwoord op het tweede commando is PONG. Meld je vervolgens aan bij Nextcloud en open het overzicht van de beheerdersinstellingen. Controleer of de waarschuwing voor de lokale cache verdwenen is en kijk in het Nextcloud-logboek of er nog een Redis- of cachewaarschuwing aanwezig is. Je kunt ook uitvoeren sudo -u www-data php /var/www/nextcloud/occ statusom te controleren of de instantie nog steeds laadt; dit commando controleert de beschikbaarheid van Nextcloud, niet alleen de cache.

Als Redis de foutmelding "Toegang geweigerd" geeft of Nextcloud geen verbinding kan maken, controleer dan of de socket bestaat, of deze www-datatot de juiste groep behoort redisen of de groep en modus van de socket toegang toestaan. Herstart Redis en de PHP-handler na het wijzigen van het groepslidmaatschap. Als Redis de socket niet kan aanmaken, controleer dan op een typefout in het geconfigureerde pad en inspecteer de configuratie sudo journalctl -u redis-server -n 50. Los een probleem met sockettoegang niet op door Redis open te stellen voor het openbare netwerk.

Oudere Nextcloud: gebruik PhpRedis in plaats daarvan

Als uw Nextcloud-versie ouder is dan 34.0.2, installeer dan de PHP Redis-extensie die overeenkomt met de PHP-versie die Nextcloud gebruikt. Op een standaard Ubuntu 24.04 PHP 8.3-installatie is het pakket php-redis; Ubuntu vermeldt het als de PHP 8.3 Redis-extensie. Herstart de actieve PHP-handler na de installatie. config.phpGebruik in de legacy Redis-klassen en het verbindingsblok in plaats van de bovenstaande KeyValueCache-vermeldingen:

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

De pakketlijst van Ubuntu's Noble php-redis bevestigt de pakkettoewijzing. Configureer niet beide backends tegelijk. Nadat u de overeenkomende configuratie hebt opgeslagen, herhaalt u de socketping en de controle in het Nextcloud-beheeroverzicht.

Laat een reactie achter

Stel de openbare URL van Nextcloud in zodat deze zichzelf kan bereiken.

Los de Nextcloud-waarschuwing over het ontbrekende uitgaande adres op door de canonieke URL in te stellen en de DNS-, HTTPS- en reverse-proxy-routering vanaf de server zelf te controleren.

Nextcloud Redis-caching instellen op Ubuntu 24.04

Nextcloud Redis-caching instellen op Ubuntu 24.04

Configureer APCu en Redis via een lokale Unix-socket voor Nextcloud-caching en bestandsvergrendeling, met stappen voor zowel recente als oudere Nextcloud-versies.

Laat Nextcloud Cron automatisch draaien met een Systemd-timer.

Controleer de cron-modus van Nextcloud, repareer de systemd-service en timer, en controleer of achtergrondtaken na het opstarten en vervolgens elke vijf minuten worden uitgevoerd.

Verwijder de bestandsvergrendelingswaarschuwing van Nextcloud met Redis.

Schakel betrouwbare Nextcloud-bestandsvergrendeling in, kies de juiste Redis- of Valkey-backend en controleer of de waarschuwing verdwijnt zonder het risico te lopen dat bestanden tegelijkertijd worden gewijzigd.

Wat er nodig is om een ​​A+ beveiligingsrating voor Nextcloud te behalen

Wat er nodig is om een ​​A+ beveiligingsrating voor Nextcloud te behalen

Los veelvoorkomende Nextcloud-scanbevindingen op met de nieuwste updates, HTTPS en HSTS, nauwkeurige reverse-proxy-vertrouwensinstellingen en controles op de openbare server.

Schakel Nextcloud-serverversleuteling in met meetbare impact.

Configureer Nextcloud SSE voor de opslag die het nodig heeft, bescherm de encryptiesleutels en meet de impact op de overdracht en het CPU-gebruik voordat u bestaande bestanden versleutelt.

Voeg Elasticsearch Full-Text Search toe aan Nextcloud

Koppel de bestandszoekfunctie van Nextcloud aan Elasticsearch, indexeer de inhoud van documenten en kies een configuratie die past bij uw server- en beveiligingsbehoeften.

Stel een betrouwbaar vervalbeleid in voor verwijderde bestanden in Nextcloud.

Stel een betrouwbaar vervalbeleid in voor verwijderde bestanden in Nextcloud.

Configureer Nextcloud om verwijderde bestanden na een bepaalde bewaartermijn te verwijderen, achtergrondtaken betrouwbaar in te plannen en opdrachten te vermijden die de prullenbak van elke gebruiker leegmaken.

Wis de Nextcloud-waarschuwing voor ontbrekende database-indexen.

Wis de Nextcloud-waarschuwing voor ontbrekende database-indexen.

Voer de OCC-reparatie van Nextcloud veilig uit, bekijk de wijzigingen in de database en controleer waarom de waarschuwing mogelijk blijft bestaan.

Verhoog de uploadlimiet van Nextcloud voor webbestanden tot boven de 2 GB.

Verhoog de uploadlimiet van Nextcloud voor webbestanden tot boven de 2 GB.

Sta grotere Nextcloud-browseruploads toe door PHP, Nginx of Apache, tijdelijke opslag en time-outinstellingen op elkaar af te stemmen en te controleren welke limiet het bestand blokkeert.