Nextcloud installeren en configureren met NGINX
Door Nextcloud met NGINX te draaien, kun je efficiënt gebruikmaken van systeembronnen en profiteer je van flexibele implementatiemogelijkheden. Om dit correct in te stellen, heb je een compatibele systeemomgeving en de juiste configuratie nodig. Daarnaast zijn er enkele specifieke aanpassingen nodig voor een soepele integratie met NGINX.
Wat is NGINX en waarom zou je het combineren met Nextcloud?
NGINX is een op open source gebaseerde webserversoftware die ook kan fungeren als reverse-proxyserver, load balancer en HTTP-cache. NGINX is oorspronkelijk ontwikkeld door de Russische software-engineer Igor Sysoev en wordt gedistribueerd onder de BSD-licentie (BSD is een Unix-variant).
NGINX is ontworpen om een groot aantal verbindingen tegelijkertijd te verwerken. Hiervoor maakt de software gebruik van een gebeurtenisgestuurde, non-blocking architectuur. In tegenstelling tot traditionele webservers, die voor elke verbinding een nieuw proces of een nieuwe thread starten, draait NGINX één hoofdproces naast meerdere werkprocessen. Het hoofdproces zorgt voor de configuratie, terwijl de werkprocessen inkomende verzoeken van clients verwerken.
De combinatie van Nextcloud en NGINX biedt verschillende belangrijke voordelen voor hoogwaardige omgevingen, waaronder:
- Efficiënt gebruik van systeembronnen: NGINX kan meerdere verbindingen tegelijk verwerken, met een minimaal verbruik van systeembronnen.
- Uitstekende schaalbaarheid: NGINX ondersteunt flexibele load balancing en is eenvoudig schaalbaar door extra servers toe te voegen.
- Zeer aanpasbare architectuur: Dankzij de modulaire structuur kan NGINX worden aangepast aan een breed scala aan scenario’s.
- Betrouwbare prestaties bij hoge serverbelasting: zelfs wanneer de server zwaar wordt belast, blijft NGINX betrouwbaar en zorgt het ervoor dat uw diensten continu beschikbaar blijven.
Aangezien Nextcloud officieel alleen Apache 2.x als webserver ondersteunt, is er geen officiële ondersteuning voor NGINX. Het gebruik van Nextcloud met NGINX is daarom vooral geschikt voor gebruikers die ervaring hebben met het configureren van webservers.
Wat zijn de vereisten om Nextcloud met NGINX te draaien?
Om Nextcloud op NGINX te draaien, heb je een server nodig waarop Ubuntu, Debian of een ander compatibel besturingssysteem draait. De server moet beschikken over minimaal 4 GB RAM en twee CPU’s. Voor grotere opstellingen met meerdere Nextcloud-apps wordt sterk aangeraden om meer geheugen en CPU-kernen te gebruiken. Daarnaast heb je voldoende opslagruimte nodig voor gegevens en back-ups.
Voor de installatie heb je ook een compatibele database nodig, zoals MySQL of MariaDB, evenals de scripttaal PHP (minimaal versie 8.1, versie 8.3 wordt aanbevolen). De database wordt gebruikt om gebruikersgegevens, plug-ingegevens en metagegevens van bestanden op te slaan. PHP is vereist om de kernfuncties van Nextcloud uit te voeren. Daarnaast heb je een account met beheerdersrechten nodig om de software te installeren.
Nextcloud installeren met NGINX
Voordat u Nextcloud installeert, moet u enkele essentiële voorbereidingen treffen. In deze handleiding wordt uitgegaan van een Ubuntu-server waarop het besturingssysteem en alle benodigde afhankelijkheden al zijn geïnstalleerd. Het gaat hierbij om NGINX als webserver, MySQL als database en PHP 8.3 met alle benodigde extensies.
We hebben ook Certbot geïnstalleerd, zodat je eenvoudig een SSL-certificaat kunt instellen met Let’s Encrypt. We gaan er bovendien vanuit dat je een domein hebt ingesteld, zodat je Nextcloud via een URL kunt openen in plaats van via een IP-adres.
Je kunt ook onze handleidingen volgen om te leren hoe je Nextcloud op Ubuntu 22.04 installeert, Nextcloud op Kubernetes configureert of Nextcloud op Debian 12 installeert.
Hoe Nextcloud te downloaden en uit te pakken
Maak om te beginnen een map met de naam „nextcloud“ aan in je thuismap om de installatiebestanden in op te slaan. Hoewel je dit handmatig kunt doen via de changelog van Nextcloud, gaat het sneller met de volgende Curl-opdracht:
mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zipbashAls je een andere versie van Nextcloud installeert, zorg er dan voor dat je de URL dienovereenkomstig aanpast.
Pak het bestand vervolgens uit, verplaats het naar de webroot ./var/www en stel de bestandsrechten in:
unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloudbashHoe stel je de database in?
Voer de sudo-opdracht uit om de MySQL-database in te stellen ( sudo mysql_secure_installation. Typ „y“ om je root-wachtwoord in te stellen (VALIDATE PASSWORD) en kies „2“ voor een sterk wachtwoord (STRONG), dat je vervolgens kunt instellen. Druk op „y“ om het wachtwoord te bevestigen en druk vervolgens nogmaals op „y“ om anonieme gebruikers te verwijderen, inloggen op afstand uit te schakelen, de testdatabase te verwijderen en de bevoegdheidstabellen opnieuw te laden.
Volg dan deze stappen:
- Meld je aan als root-gebruiker via
sudo mysql -u root -p. - Maak de database aan met:
create database nextcloud;. - Maak de gebruiker aan met:
create user 'nextcloud'@'localhost' identified by <new_password>;. - Verleen rechten met:
grant all privileges on nextcloud.* to 'nextcloud'@'localhost';. - Werk ten slotte de rechten bij met
flush privileges;en sluit de databaseconsole af metexit.
Zodra de database succesvol is ingesteld, moet u de inloggegevens (DB_NAME, DB_USER, DB_PASSWORD) toevoegen aan het configuratiebestand van Nextcloud. Open het bestand ./var/www/nextcloud/config/config.php en voeg de betreffende gegevens toe:
'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,txtHoe de standaardconfiguratie van NGINX uit te schakelen
Voordat u Nextcloud in NGINX integreert, moet u ervoor zorgen dat geen enkel ander configuratiebestand de Nextcloud-installatie overschrijft. Standaard kan er nog steeds een default atiebestand in ./etc/nginx/sites-enabled/ staan dat uw installatie zou kunnen verstoren. Verwijder dit met:
sudo rm /etc/nginx/sites-enabled/defaultbashActiveer vervolgens je aangepaste configuratie met deze opdracht:
sudo ln -s /etc/nginx/sites-available/exampledomain.co.uk /etc/nginx/sites-enabled/bashHoe configureer je de NGINX-server
Om NGINX als webserver te configureren, moet er al een domein zijn ingesteld en gekoppeld aan het IP-adres van de server. Zorg ervoor dat de DNS ook correct is ingesteld. Maak een nieuw NGINX-configuratiebestand aan in de map sites-available met behulp van:
sudo touch /etc/nginx/sites-available/exampledomain.co.ukbash(We hebben exampledomain.co.uk als URL gebruikt.)
Open het configuratiebestand in een teksteditor (zoals Vim) met:
sudo vim /etc/nginx/sites-available/exampledomain.co.ukbashVoeg het codeblok in uit het gedeelte ‘Nextcloud in een submap van de NGINX-webroots’ van de Nextcloud NGINX-configuratiedocumentatie.
Aangezien het HTTPS-certificaat met Certbot wordt toegevoegd, moet u alle regels met betrekking tot SSL uit het NGINX-configuratiebestand verwijderen. Certbot regelt dit automatisch.
Hoe stel je een SSL-certificaat in met Certbot
Om Nextcloud via een beveiligde HTTPS-verbinding te gebruiken, moet je een SSL-certificaat instellen, in dit geval van Let’s Encrypt. Configureer om te beginnen de firewall zodat HTTPS- en SSH-verbindingen worden toegestaan met behulp van de volgende sudo-opdrachten:
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'bashSchakel vervolgens de firewall in met sudo ufw enable en controleer in sudo ufw status of de verbindingen zijn toegestaan. Daarna kun je het SSL-certificaat aanmaken met Certbot:
sudo certbot --nginx -d exampledomain.co.ukbashVolg de instructies om uw e-mailadres op te geven voor certificaatvernieuwingen en om de servicevoorwaarden te accepteren. Kies optie 2 om alle HTTP-verzoeken automatisch om te leiden naar HTTPS. Certbot slaat de certificaatbestanden op in de map .etc/letsencrypt/live/exampledomain.co.uk/. Het bestand fullchain.pem bevat het SSL-certificaat en privkey.pem bevat de privésleutel. U moet deze toevoegen aan uw NGINX-configuratiebestand:
ssl_certificate /etc/letsencrypt/live/exampledomain.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exampledomain.co.uk/privkey.pem;txtAangezien Certbot het configuratiebestand heeft gewijzigd, moet je het attribuut ssl weer tussen 443 en http2 invoegen. Het blok moet er als volgt uitzien:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name exampledomain.co.uk;
}txtHoe u services opnieuw start en toegang krijgt tot Nextcloud
Om de wijzigingen door te voeren, moet u de PHP-FPM- en NGINX-services opnieuw starten:
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.servicebashOpen nu je domein in de browser – in ons geval exampledomain.co.uk. Als alles correct is geconfigureerd, zou de welkomstpagina van Nextcloud moeten verschijnen.
Als Nextcloud niet laadt, kan dat komen doordat uw domein niet als vertrouwd domein is opgegeven in config.php. Voeg het daar toe om het probleem op te lossen.