Nginx-beheer op een VPS
Een gestructureerd overzicht van Nginx-beheer voor VPS-eigenaren. Behandelt wat Nginx doet, wanneer je het inzet, en linkt naar elke tutorial die je nodig hebt voor productie.
Nginx drijft een groot deel van het web aan. Het serveert statische bestanden, stuurt verzoeken door naar backend-applicaties, termineert TLS en verdeelt de belasting over meerdere servers. Allemaal vanuit één proces met een klein geheugengebruik. Deze handleiding brengt het Nginx-beheer op een VPS in kaart, van installatie tot monitoring in productie.
Deze pagina is een overzichtskaart. Het behandelt wat Nginx doet, wanneer elke functie relevant is, en linkt naar gerichte tutorials voor elk onderwerp. Of je nu je eerste zijproject deployt of een AI-inferentie-endpoint achter een reverse proxy draait, begin hier en volg het pad dat bij jouw situatie past.
Wat Nginx doet
Nginx (uitgesproken als "engine-x") is een event-driven webserver en reverse proxy. Het werd in 2004 gemaakt om het C10K-probleem op te lossen: 10.000 gelijktijdige verbindingen afhandelen op één server. Anders dan thread-per-connection servers zoals het prefork-model van Apache, gebruikt Nginx een asynchrone event loop. Eén worker-proces handelt duizenden verbindingen af zonder voor elke verbinding een nieuwe thread aan te maken.
Op een VPS betekent dat:
- Laag geheugengebruik. Een typisch Nginx worker-proces gebruikt 2-10 MB RAM. Apache prefork-workers gebruiken elk 10-40 MB.
- Hoge concurrency. Een enkele worker kan duizenden gelijktijdige verbindingen afhandelen. De limiet is meestal het besturingssysteem, niet Nginx.
- Voorspelbare prestaties onder belasting. Omdat Nginx geen nieuwe processen per verzoek aanmaakt, blijft het geheugengebruik stabiel als het verkeer toeneemt.
De huidige stabiele release is 1.28.x (1.28.2 per maart 2026). De mainline-branch (1.29.x) krijgt nieuwe functies als eerste. De stabiele branch ontvangt alleen kritieke bugfixes. Voor een productie-VPS is de stabiele versie de juiste keuze.
Alle tutorials in deze serie zijn gericht op Nginx geïnstalleerd vanuit de officiële repositories op Debian 12 of Ubuntu 24.04. Beide worden actief ondersteund en zijn breed ingezet op productieservers. De standaard repositories van de distributie leveren vaak oudere Nginx-versies. De officiële repository geeft je de laatste stabiele versie met de juiste ondertekeningssleutels.
Kerngebruiksscenario's
Nginx vervult vier rollen op een VPS. De meeste productie-setups gebruiken er twee of meer tegelijk.
Statische bestandsserver
Nginx serveert HTML, CSS, JavaScript, afbeeldingen en lettertypen rechtstreeks vanaf schijf. De sendfile-systeemaanroep verplaatst data van schijf naar netwerksocket zonder het door userspace te kopiëren. Dit vermijdt de overhead van het inlezen van bestandsinhoud in applicatiegeheugen en het weer uitschrijven.
Gecombineerd met gzip- of brotli-compressie en cache-headers (expires, Cache-Control) levert Nginx statische assets sneller dan welke application server ook. Een Node.js- of Python-proces dat statische bestanden serveert, verspilt CPU-cycli aan werk dat Nginx op kernelniveau afhandelt.
Voor statische sites, single-page apps of full-stack frontends is Nginx het juiste gereedschap. Zelfs met dynamische backends ontlast het overdragen van statische assets aan Nginx je applicatie voor verzoeken die logica vereisen.
Reverse proxy
Een reverse proxy zit tussen clients en je backend-applicatie. Nginx ontvangt het HTTP-verzoek, stuurt het door naar een backend-proces (Node.js, Python, Go, Ruby of elke HTTP-service) en stuurt het antwoord terug naar de client.
Waarom het backend niet direct blootstellen? Meerdere redenen:
- TLS-terminatie op één plek. Je configureert certificaten eenmaal in Nginx in plaats van in elke applicatie.
- Header-forwarding geeft het echte client-IP door aan je backend via
X-Real-IPenX-Forwarded-For. Zonder dit ziet je applicatie alleen127.0.0.1. - Buffering vangt trage client-verbindingen op. Nginx leest het volledige antwoord van je snelle backend, geeft de backend-verbinding vrij en druppelt het antwoord in eigen tempo naar de trage client. Je backend handelt het volgende verzoek af in plaats van te wachten.
- WebSocket-ondersteuning werkt via Nginx met de juiste
Upgrade- enConnection-headers.
Dit is ook hoe je een webinterface voor zelf-gehoste AI-tools plaatst. Een Ollama-instantie op localhost:11434 blijft buiten het publieke internet terwijl Nginx authenticatie en HTTPS op de frontend afhandelt. De tutorial Nginx configureren als reverse proxy bevat een complete Ollama-configuratie met timeout-tuning voor langlopende inferentieverzoeken.
TLS-terminatie
Nginx handelt de TLS-handshake en decryptie af zodat backend-applicaties gewoon HTTP ontvangen op localhost. Dit centraliseert certificaatbeheer en ontlast je applicatiecode van CPU-intensieve cryptografische bewerkingen.
De TLS-handshake omvat asymmetrische cryptografie (RSA- of ECDSA-sleuteluitwisseling), die ordes van grootte duurder is dan symmetrische encryptie voor de feitelijke datatransfer. Door dit aan Nginx over te laten, blijven je backend-processen gefocust op bedrijfslogica.
Met Let's Encrypt en Certbot krijg je gratis, automatisch vernieuwende certificaten. De Nginx-directieven ssl_certificate en ssl_certificate_key wijzen naar de certificaatbestanden. Een systemd-timer voert certbot renew automatisch uit. De tutorial Let's Encrypt SSL/TLS instellen voor Nginx op Debian 12 en Ubuntu 24.04 behandelt de volledige setup inclusief OCSP-stapling en HTTP-naar-HTTPS-redirect.
Voor Europese deployments waar datasoevereiniteit belangrijk is, betekent het afhandelen van TLS-terminatie op je eigen VPS dat versleuteld verkeer alleen wordt ontsleuteld op infrastructuur die jij beheert. Geen CDN of load balancer van derden ziet je plaintext-verkeer.
Load balancer
Wanneer één backend niet genoeg is, verdeelt Nginx verzoeken over meerdere upstream-servers. Het ondersteunt drie ingebouwde algoritmen:
- Round-robin (standaard): verzoeken gaan om de beurt naar elk backend
- Least connections: verzoeken gaan naar het backend met de minste actieve verbindingen
- IP-hash: verzoeken van hetzelfde client-IP gaan altijd naar hetzelfde backend (handig voor sessie-affiniteit)
Health checks verwijderen automatisch niet-reagerende backends uit de pool. Als een backend fouten teruggeeft of een timeout heeft, stopt Nginx met het sturen van verkeer totdat het herstelt.
Voor de meeste VPS-setups wordt load balancing relevant wanneer je horizontaal schaalt over meerdere applicatie-instanties of blue-green deployments uitvoert met zero-downtime releases.
Wat je nodig hebt
Voordat je begint met een tutorial in deze serie, heb je nodig:
- Een VPS met Debian 12 of Ubuntu 24.04 met root- of sudo-toegang. Virtua Cloud VPS-plannen werken direct voor alles wat hier behandeld wordt.
- SSH-toegang met sleutelgebaseerde authenticatie. Wachtwoordauthenticatie moet uitgeschakeld zijn. Brute-force bots beginnen binnen minuten na het online gaan van een server met het aanvallen van SSH.
- Een domeinnaam met een A-record dat naar het IP-adres van je server wijst. Vereist voor TLS-certificaten. Optioneel voor de installatietutorial.
- Basiskennis van de Linux-commandoregel: navigeren in mappen, bestanden bewerken met
vimofnano, commando's uitvoeren metsudo.
Als je nieuw bent met VPS-setup, configureer eerst SSH-sleutels en een firewall voordat je aan Nginx begint. Een server die zonder deze basisbeveiliging aan het internet wordt blootgesteld, is een risico.
De tutorialserie
Elk artikel hieronder richt zich op één onderwerp. Ze bouwen in volgorde op elkaar voort, maar je kunt naar elk artikel springen als je de vereisten al hebt afgedekt.
1. Nginx installeren
Installeer Nginx vanuit de officiële repositories. Behandelt Debian 12 en Ubuntu 24.04 met GPG-sleutelverificatie, apt-installatie, systemd-beheer (start, stop, reload, status) en firewall-regels voor ufw en nftables. Bevat verificatiestappen met curl en ss om te bevestigen dat Nginx op de juiste poorten luistert.
Nginx installeren op Debian 12 en Ubuntu 24.04 vanuit de officiële repository
2. De configuratiebestandsstructuur begrijpen
Begrijp hoe Nginx zijn configuratie organiseert voordat je iets bewerkt. De hoofdcontext, events-, http-, server- en location-blokken vormen een hiërarchie. Directieven in een bovenliggende context worden overgenomen door onderliggende contexten tenzij expliciet overschreven. Dit artikel behandelt alle belangrijke contexten (inclusief stream en upstream), de include-directief voor modulaire configuraties en het sites-available/sites-enabled-patroon op Debian en Ubuntu.
Nginx configuratiebestandsstructuur uitgelegd
3. Serverblokken instellen
Host meerdere domeinen op een enkele VPS. Serverblokken (het Nginx-equivalent van Apache virtual hosts) laten je aparte sites draaien met onafhankelijke configuraties, access logs, error logs en document roots. Behandelt mapstructuur, het aanmaken van serverblokbestanden, het activeren en deactiveren van sites met symlinks, de default_server-directief, de volgorde van server_name-matching en per-vhost logging.
Nginx server blocks: meerdere domeinen op één VPS
4. SSL/TLS configureren met Let's Encrypt
Voeg HTTPS toe aan je sites met Certbot en Let's Encrypt. Behandelt DNS-vereisten, snap-gebaseerde Certbot-installatie (de huidige aanbevolen methode), certificaatuitgifte met de Nginx-plugin, automatische vernieuwing via systemd-timers, HTTP-naar-HTTPS-redirect en OCSP-stapling. Elke stap bevat een verificatiecommando.
Let's Encrypt SSL/TLS instellen voor Nginx op Debian 12 en Ubuntu 24.04
5. Een reverse proxy instellen
Plaats Nginx voor je backend-applicaties. Behandelt proxy_pass-syntax, header-forwarding (X-Real-IP, X-Forwarded-For, X-Forwarded-Proto), WebSocket-proxying met Upgrade-headers, bufferingcontroles (proxy_buffering, proxy_buffer_size) en timeout-tuning (proxy_connect_timeout, proxy_read_timeout). Bevat een werkend voorbeeld voor proxying naar een lokale Ollama-instantie met verlengde timeouts voor inferentieverzoeken die 30 seconden of langer kunnen duren.
Nginx configureren als reverse proxy
6. Beveiliging versterken
Beveilig Nginx verder dan de standaardinstellingen. Elke directief is gekoppeld aan de specifieke dreiging die het tegengaat. Behandelt beveiligingsheaders (CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy), het verbergen van servertokens, het uitschakelen van ongebruikte HTTP-methoden, IP-gebaseerde toegangsbeperkingen, TLS cipher suite-selectie met het Mozilla Modern-profiel en HSTS met preload-overwegingen. Verificatie via securityheaders.com en SSL Labs.
Nginx beveiligingshardening op Ubuntu en Debian
7. Prestaties optimaliseren
Optimaliseer Nginx voor productieverkeer. Behandelt worker_processes auto en worker_connections-dimensionering, epoll en multi_accept, keepalive-tuning, gzip-configuratie (compressieniveaus, MIME-types, minimumlengte), brotli-module setup, statische bestandscaching met expires en Cache-Control, open_file_cache om disk-I/O te verminderen, proxy buffer-dimensionering en HTTP/2-activering. Bevat een benchmarkmethodologie met wrk zodat je het effect van elke wijziging kunt meten.
Voor sites die veel verkeer verwachten, biedt een high-CPU VPS meer ruimte voor TLS-handshakes en compressie.
Nginx Performance Tuning op een VPS
8. Rate limiting en DDoS-bescherming
Bescherm je endpoints tegen misbruik en volumetrische aanvallen. Behandelt limit_req_zone en limit_req met burst- en nodelay-parameters, limit_conn voor verbindingsthrottling, aangepaste 429-foutpagina's, dry_run-modus voor veilig testen zonder echt verkeer te blokkeren en fail2ban-integratie met een werkend filter en jail-configuratie om herhaalde overtreders op firewallniveau te blokkeren.
Nginx Rate Limiting en DDoS-bescherming
9. Logging en monitoring
Richt productiewaardige observability in. Behandelt aangepaste log_format-definities inclusief een gestructureerd JSON-formaat met escape=json (klaar voor log shippers zoals Filebeat of Vector), conditionele logging met map om health checks en statische assets te filteren, log-rotatie met een logrotate-configuratie, realtime analyse met GoAccess en Prometheus-metrics via de stub_status-module en prometheus-nginxlog-exporter.
10. Nginx-cheatsheet
Snelle referentie voor dagelijks beheer. systemd-commando's, veelgebruikte configuratiefragmenten (redirect, proxy_pass, SSL-blok, rate limit, gzip), locaties van logbestanden, debugging met nginx -T (volledige samengevoegde configuratie dumpen) en curl -I (response headers inspecteren), en veelvoorkomende foutcodes (502, 504, 413, 403) met hun Nginx-specifieke oorzaken en oplossingen.
Nginx-spiekbrief: commando's, configuratiefragmenten en foutoplossing
Wanneer het uitbesteden
Nginx beheren in productie betekent bijblijven met beveiligingspatches, certificaatvernieuwingen, configuratie-drift en log-rotatie. Als je liever focust op je applicatiecode en de infrastructuur aan iemand anders overlaat, neemt managed server hosting dat van je over. Je behoudt de volledige Nginx-flexibiliteit zonder de onderhoudslasten.
Waar te beginnen
Je eerste site deployen? Begin met de installatietutorial (Nginx installeren op Debian 12 en Ubuntu 24.04 vanuit de officiële repository) en werk de serie in volgorde door.
Nginx draait al? Spring naar het onderwerp dat je nodig hebt. Het artikel over de configuratiestructuur (Nginx configuratiebestandsstructuur uitgelegd) vult hiaten op als je configuraties hebt gekopieerd zonder de hiërarchie te begrijpen.
AI-workloads draaien? Ga direct naar de reverse proxy-tutorial (Nginx configureren als reverse proxy) voor de Ollama reverse proxy-setup. Beveilig het vervolgens met de beveiligingshardening-gids (Nginx beveiligingshardening op Ubuntu en Debian) en de rate limiting-tutorial (Nginx Rate Limiting en DDoS-bescherming).
Alleen een snel commando nodig? Het cheatsheet (Nginx-spiekbrief: commando's, configuratiefragmenten en foutoplossing) heeft alles op één pagina.
Klaar om het zelf te proberen?
Host uw webapplicaties op een betrouwbare VPS. →Gerelateerde artikelen
- Nginx configureren als reverse proxy
- Nginx installeren op Debian 12 en Ubuntu 24.04 vanuit de officiële repository
- Nginx configuratiebestandsstructuur uitgelegd
- Nginx server blocks: meerdere domeinen op één VPS
- Let's Encrypt SSL/TLS instellen voor Nginx op Debian 12 en Ubuntu 24.04
- Nginx beveiligingshardening op Ubuntu en Debian
- Nginx-spiekbrief: commando's, configuratiefragmenten en foutoplossing
- Nginx Performance Tuning op een VPS