Hoe Nextcloud met NGINX te installeren en configureren
Door Nextcloud met NGINX te gebruiken, kun je efficiënt omgaan met systeembronnen en heb je flexibele implementatieopties. Om het goed in te stellen, heb je een compatibele systeemomgeving en de juiste configuratie nodig. Er zijn ook een paar 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 dienen 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 variant van Unix).
NGINX is ontworpen om een groot aantal verbindingen tegelijkertijd te verwerken. Hiervoor maakt de software gebruik van een gebeurtenisgestuurde, niet-blokkerende architectuur. In tegenstelling tot traditionele webservers die voor elke verbinding een nieuw proces of een nieuwe thread starten, draait NGINX een hoofdproces naast meerdere werkprocessen. Het hoofdproces verzorgt de configuratie, terwijl de werkprocessen de binnenkomende verzoeken van klanten verwerken.
Het combineren van Nextcloud met NGINX biedt verschillende belangrijke voordelen voor hoogwaardige omgevingen, waaronder:
- Efficiënt gebruik van bronnen: NGINX kan meerdere verbindingen tegelijkertijd verwerken, met minimaal verbruik van bronnen.
- 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 zware serverbelasting: zelfs wanneer de server zwaar wordt belast, blijft NGINX betrouwbaar en blijven uw diensten continu beschikbaar.
Aangezien Nextcloud alleen Apache 2.x officieel ondersteunt als webserver, is er geen officiële ondersteuning voor NGINX. Het gebruik van Nextcloud met NGINX is daarom het meest geschikt voor gebruikers met ervaring in het configureren van webservers.
Wat zijn de vereisten voor het draaien van Nextcloud met NGINX?
Om Nextcloud op NGINX te draaien, heb je een server nodig met Ubuntu, Debian of een ander compatibel systeem. De server moet minimaal 4 GB RAM en twee CPU’s hebben. Voor grotere opstellingen met meerdere Nextcloud-apps worden meer geheugen en CPU-kernen sterk aanbevolen. Je hebt ook voldoende opslagruimte nodig voor gegevens en back-ups.
Voor de installatie heb je ook een compatibele database nodig, zoals MySQL of MariaDB, en de scripttaal PHP (minimaal versie 8.1, versie 8.3 aanbevolen). De database wordt gebruikt om gebruikersgegevens en plug-ingegevens op te slaan, evenals metagegevens van bestanden. PHP is vereist om de kernfuncties van Nextcloud uit te voeren. Je hebt ook een account met beheerdersrechten nodig om de software te installeren.
Hoe Nextcloud met NGINX te installeren
Voordat u Nextcloud installeert, moet u enkele essentiële voorbereidingen treffen. In deze handleiding wordt uitgegaan van een Ubuntu-server waarop het systeem en alle vereiste afhankelijkheden al aanwezig zijn. Deze omvatten NGINX als webserver, MySQL als database en PHP 8.3 met alle benodigde extensies.
We hebben ook Certbot geïnstalleerd voor eenvoudige SSL-certificaatinstelling met Let’s Encrypt. We gaan er ook vanuit dat u een domein hebt ingesteld, zodat u Nextcloud via een URL kunt openen in plaats van via een IP-adres.
Je kunt ook onze tutorials volgen om te leren hoe je Nextcloud op Ubuntu 22.04 installeert, Nextcloud op Kubernetes instelt of Nextcloud op Debian 12 installeert.
Hoe Nextcloud downloaden en uitpakken
Begin met het aanmaken van een map met de naam “nextcloud” in uw homedirectory om de installatiebestanden op te slaan. Hoewel dit handmatig kan worden gedaan via de Nextcloud-changelog, 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 u een andere versie van Nextcloud installeert, zorg er dan voor dat u de URL dienovereenkomstig bijwerkt.
Pak vervolgens het bestand 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 de database instellen
Om de MySQL-database in te stellen, voert u het sudo-commando sudo mysql_secure_installation uit. Typ “y” om uw root-wachtwoord in te stellen (VALIDATE PASSWORD) en kies “2” voor een sterk wachtwoord (STRONG), dat u vervolgens kunt instellen. Druk op “y” om het wachtwoord te bevestigen en druk vervolgens nogmaals op “y” om anonieme gebruikers te verwijderen, externe aanmeldingen uit te schakelen, de testdatabase te verwijderen en de privilege-tabellen opnieuw te laden.
Volg dan deze stappen:
- Log in als rootgebruiker met
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 relevante 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 andere configuratiebestanden de Nextcloud-installatie overschrijven. Standaard kan er nog steeds een default atiebestand in ./etc/nginx/sites-enabled/ staan dat uw installatie kan verstoren. Verwijder dit met:
sudo rm /etc/nginx/sites-enabled/defaultbashActiveer vervolgens uw aangepaste configuratie met deze opdracht:
sudo ln -s /etc/nginx/sites-available/exampledomain.co.uk /etc/nginx/sites-enabled/bashHoe de NGINX-server configureren
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 behulp van:
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, verwijdert u alle SSL-gerelateerde regels uit het NGINX-configuratiebestand. Certbot handelt deze automatisch af.
Hoe een SSL-certificaat instellen met Certbot
Om Nextcloud via een beveiligde HTTPS-verbinding te gebruiken, moet u 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 met sudo ufw status of de verbindingen zijn toegestaan. Vervolgens kunt u 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 u het kenmerk ssl opnieuw toevoegen tussen 443 en http2. 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 kunt starten en toegang krijgt tot Nextcloud
Om de wijzigingen door te voeren, moet u de PHP-FPM- en NGINX-services opnieuw laden:
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.servicebashOpen nu uw 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 dit komen doordat uw domein niet is opgenomen als vertrouwd domein in config.php. Voeg het daar toe om het probleem op te lossen.