Nginx vs Apache: welke webserver kies je?
Als je een webserver nodig hebt, komen vrijwel altijd twee namen voorbij: Nginx en Apache. Beide zijn volwassen, stabiel en breed ingezet. Maar ze verschillen op een aantal belangrijke punten.
Wat doet een webserver?
Een webserver ontvangt HTTP-verzoeken van browsers of andere clients en stuurt een antwoord terug: een HTML-pagina, een bestand, of de output van een applicatie. Nginx en Apache doen dit allebei, maar op een andere manier.
Apache
Apache bestaat al sinds 1995 en is jarenlang de meest gebruikte webserver geweest. Apache werkt met een thread- of procesmodel: voor elke verbinding wordt een aparte thread of proces aangemaakt. Dat werkt goed, maar kan bij veel gelijktijdige verbindingen veel geheugen kosten.
Een bekend kenmerk van Apache is .htaccess: een configuratiebestand dat je per map kunt plaatsen. Dat maakt het eenvoudig om configuratie te delegeren, bijvoorbeeld bij hostingproviders waar klanten geen toegang hebben tot de hoofdconfiguratie.
Sterk bij Apache:
- Flexibele per-map configuratie via .htaccess
- Groot ecosysteem aan modules (mod_rewrite, mod_php, etc.)
- Breed ondersteund door hostingpanels zoals cPanel
- Goed gedocumenteerd, veel tutorials beschikbaar
Nginx
Nginx (uitgesproken als "engine-x") is in 2004 gemaakt met als doel veel gelijktijdige verbindingen efficiënt afhandelen. Het gebruikt een event-driven, asynchroon model waardoor het minder geheugen verbruikt bij grote belasting.
Nginx is populair als reverse proxy: het ontvangt verzoeken en stuurt ze door naar een applicatieserver (zoals een Node.js-, Django- of PHP-app). Statische bestanden serveert Nginx ook zeer snel.
Sterk bij Nginx:
- Hoge prestaties bij veel gelijktijdige verbindingen
- Laag geheugengebruik
- Uitstekende reverse proxy en load balancer
- Snel bij het serveren van statische bestanden
Wanneer kies je wat?
Kies Apache als:
- Je een traditioneel hostingpanel gebruikt (cPanel, Plesk)
- Je .htaccess nodig hebt voor per-map configuratie
- Je applicatie sterk leunt op Apache-specifieke modules
Kies Nginx als:
- Je een VPS of dedicated server zelf beheert
- Je een reverse proxy nodig hebt voor een applicatieserver
- Je veel verkeer verwacht en efficiënt geheugengebruik belangrijk is
- Je statische bestanden of media snel wilt serveren
Combineren
Het is ook mogelijk om beide te combineren: Apache als applicatieserver op de achtergrond, met Nginx als reverse proxy ervoor. Nginx handelt dan de inkomende verbindingen af en geeft verzoeken door aan Apache.
En Caddy?
Caddy is een nieuwere webserver die automatisch SSL-certificaten via Let's Encrypt aanvraagt en verlengt. Qua configuratie is het eenvoudiger dan Nginx of Apache, maar het ecosysteem is kleiner. Voor kleinere projecten of als je snel iets wilt opzetten is Caddy het overwegen waard.