---
title: "NGINX"
date: 2025-11-08
weight: 1
feedback: true
draft: false
---

{{< notice "info" "Informatie">}}
De instructies in dit artikel zijn uitsluitend voor de webserver NGINX, niet de software die hierop geïnstalleerd gaat worden.
{{< /notice >}}

## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren.

## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint met installeren. 
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Gebruik het `apt` commando om het systeem te updaten.
```bash
sudo apt update && sudo apt upgrade
```
## NGINX
### Installatie
Installeer NGINX met het `apt` commando.
```bash
sudo apt install nginx
```

### Configuratie
{{< notice "info" "Informatie" >}}
Verander in de code **voorbeeld** naar jouw domeinnaam, zonder `https://` of `www` tenzij letterlijk aangegeven zoals **voorbeeld.nl**
{{< /notice >}}

1. Zorg dat NGINX altijd start met de server.
```bash
sudo systemctl enable --now nginx
```
2. Kopieer de standaard site configuratie.
```bash
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/voorbeeld.nl
```
3. Pas de inhoud met het programma `nano`.
```bash
sudo nano /etc/nginx/sites-available/voorbeeld.nl
```
```nginx
server {
    server_name voorbeeld.nl www.voorbeeld.nl;

    root /var/www/voorbeeld.nl/public/;
    index index.html;

    location / {
            try_files $uri $uri/ =404;
    }

    listen 80;
    listen [::]:80;

}
```
{{< notice "info" "Tip" >}}
Je kan plakken in de terminal met CTRL + SHIFT + V
{{< /notice >}}
4. Activeer de configuratie door een link te maken met het `ln` commando.
```bash
sudo ln -s /etc/nginx/sites-available/voorbeeld.nl \
           /etc/nginx/sites-enabled/voorbeeld.nl
```
5. Controleer werking en herlaad NGINX.
```bash
sudo nginx -t
sudo systemctl reload nginx
```

## CertBot
### Installatie
Installeer CertBot met het `apt` commando.

```bash
sudo apt install certbot python3-certbot-nginx
```
### Configuratie
Genereer en implementeer een geldig certificaat met het volgende commando.
```bash
sudo certbot --nginx
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres en selectie welke sites certificering moeten krijgen.
{{< notice "info" "Tip" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```
sudo certbot --nginx --dry-run
```
{{< /notice >}}

## Website activeren
1. Maak een index.html bestand. En geef deze een vorm van vulling, zoals voorbeeld hieronder.
```bash
sudo mkdir -p /var/www/voorbeeld.nl/public
sudo nano /var/www/voorbeeld.nl/public/index.html
```
```html
<html>
  <body>
    <h1>Hallo wereld</h1>
  </body>
</html>
```
2. Wijs de omgeving toe aan de `www-data` gebruiker en groep, stel schrijfrechten in.
```bash
sudo chown www-data:www-data /var/www/voorbeeld.nl -R
sudo chmod -R g+rwX /var/www/voorbeeld.nl
```
3. Open de browser en ga naar je website toe, je zou nu de inhoud van de index.html moeten kunnen zien.