# 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](https://www.ionos.com/nl-be/digitalguide/server/configuratie/nginx-omgekeerde-proxy/), 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.

Opmerking Aangezien [Nextcloud](https://www.ionos.com/nl-be/digitalguide/server/gereedschap/wat-is-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.

Tip Je kunt ook onze handleidingen volgen om te leren hoe je [Nextcloud op Ubuntu 22.04 installeert](https://www.ionos.com/nl-be/digitalguide/server/configuratie/nextcloud-ubuntu-2204/), [Nextcloud op Kubernetes configureert](https://www.ionos.com/nl-be/digitalguide/server/configuratie/nextcloud-kubernetes/) of [Nextcloud op Debian 12 installeert](https://www.ionos.com/nl-be/digitalguide/server/configuratie/nextcloud-debian-12/).

### 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](https://nextcloud.com/changelog/ "Nextcloud Changelog"), gaat het sneller met de volgende Curl-opdracht:

```bash
mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zip
```

Opmerking Als 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:

```bash
unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloud
```

### Hoe 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:

1. Meld je aan als root-gebruiker via `sudo mysql -u root -p`.
2. Maak de database aan met: `create database nextcloud;`.
3. Maak de gebruiker aan met: `create user 'nextcloud'@'localhost' identified by <new_password>;`.
4. Verleen rechten met: `grant all privileges on nextcloud.* to 'nextcloud'@'localhost';`.
5. Werk ten slotte de rechten bij met `flush privileges;` en sluit de databaseconsole af met `exit`.

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:

```txt
'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
```

### Hoe 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:

```bash
sudo rm /etc/nginx/sites-enabled/default
```

Activeer vervolgens je aangepaste configuratie met deze opdracht:

```bash
sudo ln -s /etc/nginx/sites-available/exampledomain.co.uk /etc/nginx/sites-enabled/
```

### Hoe 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:

```bash
sudo touch /etc/nginx/sites-available/exampledomain.co.uk
```

(We hebben `exampledomain.co.uk` als URL gebruikt.)

Open het configuratiebestand in een teksteditor (zoals Vim) met:

```bash
sudo vim /etc/nginx/sites-available/exampledomain.co.uk
```

Voeg 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:

```bash
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'
```

Schakel 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:

```bash
sudo certbot --nginx -d exampledomain.co.uk
```

Volg 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:

```txt
ssl_certificate /etc/letsencrypt/live/exampledomain.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exampledomain.co.uk/privkey.pem;
```

Aangezien Certbot het configuratiebestand heeft gewijzigd, moet je het attribuut `ssl` weer tussen `443` en `http2` invoegen. Het blok moet er als volgt uitzien:

```txt
server { 
    listen 443 ssl http2; 
    listen [::]:443 ssl http2; 
    server_name exampledomain.co.uk;
}
```

### Hoe 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:

```bash
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.service
```

Open nu je domein in de browser – in ons geval exampledomain.co.uk. Als alles correct is geconfigureerd, zou de welkomstpagina van Nextcloud moeten verschijnen.

Opmerking 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.


This is a markdown version of: [https://www.ionos.com/nl-be/digitalguide/server/configuratie/nextcloud-nginx/](https://www.ionos.com/nl-be/digitalguide/server/configuratie/nextcloud-nginx/) for AI/LLM consumption.