Nginx installeren op Debian 12 en Ubuntu 24.04 vanuit de officiele repository

6 min leestijd·Matthieu|

Installeer Nginx vanuit de officiele nginx.org-repository op Debian 12 of Ubuntu 24.04. Behandelt de ondertekeningssleutel, apt-pinning, firewallregels voor UFW en nftables, systemd-beheer en verificatie na elke stap.

Nginx installeren op Debian 12 en Ubuntu 24.04 vanuit de officiele repository

Deze tutorial installeert Nginx vanuit de officiele nginx.org-repository op een Debian 12- of Ubuntu 24.04-VPS. Je krijgt de nieuwste versie (1.28.2 stable of 1.29.6 mainline) in plaats van het verouderde pakket dat bij je distributie zit. Elke stap bevat verificatie zodat je precies weet wat er is gebeurd.

Voor context over waar Nginx past in je serverstack, zie Nginx Administration on a VPS.

Vereisten

Je hebt nodig:

  • Een VPS met Debian 12 (Bookworm) of Ubuntu 24.04 (Noble Numbat)
  • Een niet-root gebruiker met sudo-rechten
  • SSH-toegang tot de server

Alle commando's in deze tutorial worden als sudo-gebruiker uitgevoerd. Niet als root.

Moet ik Nginx stable of mainline installeren?

Nginx onderhoudt twee branches. Stable (even versienummer, momenteel 1.28.x) ontvangt alleen kritieke bugfixes. Mainline (oneven versienummer, momenteel 1.29.x) krijgt alle nieuwe functies, bugfixes en beveiligingspatches. Het Nginx-team raadt mainline aan voor productie. Stable bestaat voor gebruikers die minimale wijzigingen tussen updates willen.

Stable Mainline
Huidige versie 1.28.2 1.29.6
Updatefrequentie Alleen kritieke fixes Elke 4-6 weken
Nieuwe functies Nee Ja
Aanbevolen door nginx.org Voor conservatieve setups Voor productiegebruik

Deze tutorial gebruikt standaard stable. Om mainline te installeren, vervang de repository-URL waar aangegeven.

Waarom de officiele repository gebruiken in plaats van het distributiepakket?

De standaard apt-repositories van Debian 12 en Ubuntu 24.04 leveren respectievelijk Nginx 1.22.1 en 1.24.0. Deze versies lopen maanden tot jaren achter op de officiele releases. De nginx.org-repository geeft je de nieuwste stable- of mainline-build, onderhouden door het Nginx-team.

Bron Debian 12 versie Ubuntu 24.04 versie Onderhouden door
Distributie-repository 1.22.1 1.24.0 OS-beheerders
nginx.org stable 1.28.2 1.28.2 Nginx-team
nginx.org mainline 1.29.6 1.29.6 Nginx-team

Hoe installeer ik Nginx op Debian 12 vanuit de officiele repository?

Installeer de vereisten, voeg de nginx.org-ondertekeningssleutel toe, configureer de apt-bron, pin de repository en installeer. Dit duurt ongeveer twee minuten.

Stap 1: Vereisten installeren

sudo apt update
sudo apt install -y curl gnupg2 ca-certificates lsb-release debian-archive-keyring

Stap 2: De nginx.org-ondertekeningssleutel importeren

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Controleer de vingerafdruk van de sleutel:

gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

Scherp kijken: de uitvoer toont meerdere ondertekeningssleutels. Zoek naar deze vingerafdruk:

573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62

Als geen van de vermelde vingerafdrukken overeenkomt, verwijder het bestand en download opnieuw. Een niet-overeenkomende sleutel betekent dat de download is onderschept of beschadigd.

Stap 3: De apt-repository toevoegen

Voor stable:

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/debian $(lsb_release -cs) nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Voor mainline, vervang packages door packages/mainline:

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/mainline/debian $(lsb_release -cs) nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Stap 4: De officiele repository pinnen

Dit zorgt ervoor dat apt het nginx.org-pakket verkiest boven de distributieversie:

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx

Zonder pinning kan een toekomstige apt upgrade het officiele pakket vervangen door de oudere distributieversie.

Stap 5: Nginx installeren

sudo apt update
sudo apt install -y nginx

Stap 6: Starten en installatie verifieren

nginx -v

Verwachte uitvoer voor stable:

nginx version: nginx/1.28.2

Het nginx.org-pakket start niet automatisch na installatie. Start het nu:

sudo systemctl start nginx

Controleer of de service draait:

sudo systemctl status nginx

Scherp kijken: zoek naar Active: active (running) in de uitvoer.

Controleer of Nginx luistert op poort 80:

ss -tlnp | grep :80

Verwachte uitvoer:

LISTEN 0      511          0.0.0.0:80        0.0.0.0:*    users:(("nginx",pid=...,fd=...))

Test de welkomstpagina:

curl -I http://localhost

Scherp kijken: het antwoord moet HTTP/1.1 200 OK en Server: nginx/1.28.2 bevatten.

Hoe installeer ik Nginx op Ubuntu 24.04 vanuit de officiele repository?

Het proces is vrijwel identiek aan Debian. De enige verschillen zijn het vereistenpakket en de repository-URL.

Stap 1: Vereisten installeren

sudo apt update
sudo apt install -y curl gnupg2 ca-certificates lsb-release ubuntu-keyring

Opmerking: Ubuntu gebruikt ubuntu-keyring in plaats van debian-archive-keyring.

Stap 2: De nginx.org-ondertekeningssleutel importeren

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Controleer de vingerafdruk (dezelfde sleutel als Debian):

gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

Zoek naar 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 in de vermelde sleutels.

Stap 3: De apt-repository toevoegen

Voor stable:

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Voor mainline:

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/mainline/ubuntu $(lsb_release -cs) nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Stap 4: De officiele repository pinnen

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx

Stap 5: Nginx installeren

sudo apt update
sudo apt install -y nginx

Stap 6: Starten en installatie verifieren

Start Nginx (het start niet automatisch na installatie):

sudo systemctl start nginx

Voer dezelfde verificaties uit als bij Debian:

nginx -v
sudo systemctl status nginx
ss -tlnp | grep :80
curl -I http://localhost

Je zou nginx/1.28.2 (stable) of nginx/1.29.6 (mainline) moeten zien in zowel nginx -v als de curl-responsheaders.

Hoe beheer ik Nginx met systemd?

Nginx levert een systemd-unitbestand mee. Dit zijn de commando's die je dagelijks zult gebruiken.

Commando Wat het doet
sudo systemctl start nginx Nginx starten
sudo systemctl stop nginx Nginx stoppen
sudo systemctl restart nginx Stoppen en starten (verbreekt verbindingen)
sudo systemctl reload nginx Configuratie herladen zonder verbindingen te verbreken
sudo systemctl enable nginx Starten bij het opstarten
sudo systemctl disable nginx Niet starten bij het opstarten
sudo systemctl status nginx Status en recente logs tonen

Reload vs restart: Gebruik reload na configuratiewijzigingen. Het past de nieuwe configuratie toe zonder actieve verbindingen te verbreken. Gebruik restart alleen wanneer je instellingen op binair niveau hebt gewijzigd of Nginx hebt bijgewerkt. Reload is veilig. Restart verbreekt elke actieve verbinding.

Schakel automatisch starten van Nginx bij het opstarten in:

sudo systemctl enable nginx

Test altijd je configuratie voor het herladen:

sudo nginx -t

Verwachte uitvoer:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Als nginx -t fouten meldt, los ze op voor het herladen. Een mislukte reload laat de vorige configuratie actief. Een mislukte restart laat Nginx gestopt.

Hoe configureer ik UFW-firewallregels voor Nginx?

UFW (Uncomplicated Firewall) is de standaard firewall-frontend op Ubuntu. Het is beschikbaar op Debian maar niet standaard geinstalleerd. Sommige VPS-images worden zonder UFW geleverd. Als ufw niet wordt gevonden, installeer het eerst:

sudo apt install -y ufw

Het nginx.org-pakket bevat geen UFW-applicatieprofielen (Nginx Full, Nginx HTTP, Nginx HTTPS). Die profielen worden alleen meegeleverd met het distributiepakket. Gebruik poortnummers in plaats daarvan.

Sta eerst SSH toe (zodat je jezelf niet buitensluit):

sudo ufw allow OpenSSH

Sta HTTP (80) en HTTPS (443) toe:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Als je alleen HTTPS nodig hebt:

sudo ufw allow 443/tcp

Zorg dat UFW is ingeschakeld:

sudo ufw enable

Controleer de regels:

sudo ufw status

De verwachte uitvoer bevat:

80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

Als ufw status Status: inactive toont, voer eerst sudo ufw enable uit.

Hoe configureer ik nftables-firewallregels voor Nginx?

Debian 12 gebruikt nftables als standaard firewall-backend. Als je firewallregels direct beheert (zonder UFW), voeg de Nginx-poorten toe aan je nftables-configuratie.

Bewerk je nftables-configuratie:

sudo nano /etc/nftables.conf

Voeg deze regels toe in je input-chain (binnen je inet filter-tabel):

tcp dport { 80, 443 } accept

Een minimale werkende configuratie ziet er zo uit:

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;

        iif lo accept
        ct state established,related accept
        tcp dport 22 accept
        tcp dport { 80, 443 } accept
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

Pas de regels toe:

sudo nft -f /etc/nftables.conf

Controleer:

sudo nft list ruleset

Scherp kijken: zoek naar tcp dport { 80, 443 } accept in de uitvoer. Als het ontbreekt, zijn de regels niet toegepast.

Schakel nftables in bij het opstarten:

sudo systemctl enable nftables

Hoe controleer ik of Nginx correct draait?

Na installatie en firewallconfiguratie, loop deze checklist door.

Vanaf de server:

nginx -v
sudo systemctl status nginx
ss -tlnp | grep :80
curl -I http://localhost

Vanaf je lokale machine (vervang YOUR_SERVER_IP):

curl -I http://YOUR_SERVER_IP

Verwachte responsheaders:

HTTP/1.1 200 OK
Server: nginx/1.28.2

Als de externe curl een timeout geeft maar localhost werkt, blokkeert je firewall poort 80. Ga terug naar de UFW- of nftables-sectie hierboven.

Je kunt ook http://YOUR_SERVER_IP in een browser openen. Je zou de "Welcome to nginx!"-pagina moeten zien.

Belangrijke bestands- en maplocaties

Pad Doel
/etc/nginx/nginx.conf Hoofdconfiguratiebestand
/etc/nginx/conf.d/ Aanvullende configuratiebestanden (standaard geladen)
/var/log/nginx/access.log Toegangslog
/var/log/nginx/error.log Foutenlog
/usr/share/nginx/html/ Standaard documentroot

Het officiele nginx.org-pakket gebruikt /etc/nginx/conf.d/ voor siteconfiguraties. Dit verschilt van het distributiepakket, dat sites-available/ en sites-enabled/ gebruikt. Beide benaderingen werken. Het conf.d-patroon is eenvoudiger.

Om te leren hoe Nginx-configuratiebestanden zijn georganiseerd, zie . Om meerdere domeinen op deze server te hosten, zie .

Copyright 2026 Virtua.Cloud. Alle rechten voorbehouden. Deze inhoud is een origineel werk van het Virtua.Cloud-team. Reproductie, herpublicatie of herdistributie zonder schriftelijke toestemming is verboden.

Klaar om het zelf te proberen?

Deploy uw eigen server in seconden. Linux, Windows of FreeBSD.

Bekijk VPS-aanbod