NGINX vs Apache: Een vergelijking van de populaire webservers

De verovering van het internet, zoals we dat nu kennen, begon aan het begin van de jaren negentig. Op 20 september 1990 ging ’s werelds eerste website online in het nucleaire onderzoekscentrum CERN in Genève …

NGINX vs Apache: Een vergelijking van de populaire webservers

  1. Tijdschrift
  2. »
  3. Artikel
  4. »
  5. Internet
  6. »
  7. NGINX vs Apache: Een vergelijking van de populaire webservers

De verovering van het internet, zoals we dat nu kennen, begon aan het begin van de jaren negentig. Op 20 september 1990 ging ’s werelds eerste website online in het nucleaire onderzoekscentrum CERN in Genève en luidde tevens de geboorte in van het World Wide Web. In principe zijn websites niets meer dan HTML-documenten. Om bezoekers verschillende webpagina’s aan te bieden, heeft de host serversoftware nodig. Deze verwerkt de verzoeken en analyseert ze om vervolgens de gevraagde documenten in de browser terug te sturen. Twee van de populairste programma’s van dit type zijn NGINX en Apache. In deze vergelijking stellen we de twee webservers en hun kenmerken in detail voor en laten we zien welke van de twee beter geschikt is voor welke doeleinden.

Wat is het verschil tussen een webserver en een applicatieserver?

De taak van een webserver is het tot stand brengen van een verbinding tussen een fysieke of cloud server en de opgeslagen webpagina’s (of browsers) van de internetgebruikers. De applicatieserver daarentegen is verantwoordelijk voor het beschikbaar maken van applicaties binnen een netwerk.

Zijn zowel NGINX als de Apache webserver geschikt voor het afhandelen van dynamische verzoeken?

Nee, in tegenstelling tot de Apache webserver ondersteunt NGINX alleen de levering van statische inhoud. Dynamische inhoud daarentegen wordt doorgegeven aan andere software.

Kunnen de twee webservers ook in combinatie worden gebruikt?

Ja, dat werkt uitstekend. In de praktijk vindt u meestal de combinatie van NGINX als reverse proxy en één of meer Apache servers in de backend.

1. apache: populaire flexibilist

De open-source webserver Apache is al sinds 1995 op de markt en is volgens w3techs.com de meest gebruikte webserver van allemaal. Vanwege zijn lange geschiedenis, uitgebreide documentatie en flexibele inzetmogelijkheden is de webserver erg populair bij beheerders. Het enorme marktaandeel is echter vooral te danken aan het feit dat veel systemen (bijvoorbeeld CMS) out of the box met Apache werken. Bovendien is hij voorgeïnstalleerd op alle belangrijke Linux-distributies zoals Red Hat, CentOS of Ubuntu.

Goed om te weten: Sinds 1999 is de Apache Software Foundation verantwoordelijk voor de verdere ontwikkeling van de webserver.

De Apache webserver wordt geconfigureerd met behulp van een .htaccess bestand. Dit maakt een hoge mate van flexibiliteit mogelijk bij de verwerking van binnenkomende verzoeken. U kunt bijvoorbeeld geheugenlimieten en beperkingen voor het uploaden van bestanden instellen, omleidingsregels of directorybeveiliging (htpasswd) instellen of verschillende beveiligingsinstellingen maken voor het omgaan met cookies.

Een van de grootste voordelen van Apache is echter zeker dat je aan elk niveau of elke map in de boom een eigen .htaccess-bestand met een individuele configuratie kunt toewijzen. Hierdoor kunnen bijvoorbeeld shared hosting providers hun klanten een configuratiemogelijkheid bieden voor hun website op een en dezelfde machine, zonder dat de andere gebruikers daar last van hebben. Als een gebruiker een instelling maakt voor zijn dedicated omgeving, blijft de globale serverconfiguratie onaangetast.

1.1 Modules breiden de functionaliteit van de webserver uit

Dankzij het dynamische modulesysteem (dat ook in de vorm van NGINX bestaat) kan de functionaliteit van Apache extra worden uitgebreid. U kunt de modules ook nadat u de Apache webserver heeft ingesteld en in gebruik genomen nog installeren en naar behoefte activeren of deactiveren. Een officiële lijst van alle modules die deel uitmaken van de Apache standaarddistributie vindt u hier.

Tip: In Debian-gebaseerde Linux distributies kunnen de modules geactiveerd of gedeactiveerd worden zonder de configuratiebestanden te bewerken via de commando’s a2enmod en a2dismod .

1.2 NGINX vs Apache: Het verdriet van de prestaties

Performance Benchmark NGINX vs Apache
De Apache webserver is voortdurend verbeterd en zijn prestaties zijn in de loop der tijd geoptimaliseerd. Hij komt echter nergens in de buurt van de prestatie benchmark van NGINX
.

Een belangrijke zwakte van Apache is zijn prestaties. Terwijl de webserver nog steeds betrouwbaar en stabiel draait voor kleinere websites, hapert hij regelmatig bij een toenemend aantal gelijktijdige verzoeken. Dit is voornamelijk te wijten aan het feit dat voor elke open verbinding met de webserver een apart proces wordt gestart, dat werkgeheugen in beslag neemt. Dit betekent dat honderden of duizenden parallelle verzoeken logischerwijs evenveel processen opleveren. Deze verhogen de laadtijden van de pagina’s drastisch en kunnen in het ergste geval zelfs leiden tot een volledige stilstand van de webserver.

De Apache-webserver is in de loop der tijd voortdurend verbeterd en zijn prestaties zijn geoptimaliseerd. Hij kan een NGINX echter niet “out-of-the-box” bijbenen.

2 NGINX: Hoogwaardige lichtgewicht

NGINX is pas in 2004 uitgebracht en is vanaf het begin ontwikkeld met een focus op prestaties, de kernserver en proxy-functies. De webserver biedt beslissende voordelen ten opzichte van Apache, vooral op beperkte systemen, omdat hij vertrouwt op een asynchrone, op gebeurtenissen gebaseerde architectuur. Dit betekent dat niet voor elke verbinding een apart proces wordt gestart, maar dat zelfs enkele duizenden verbindingen per proces kunnen worden afgehandeld. Op deze manier kan NGINX een groot aantal gelijktijdige verzoeken afhandelen zonder aan snelheid en stabiliteit in te boeten. Het bronnenverbruik blijft relatief constant, zelfs tijdens belastingspieken, wat betekent dat prestatie-intensieve pagina’s met een groot aantal toegangen zelfs met beperkte hardware (bijvoorbeeld op een Raspberry Pi) kunnen worden geleverd.

2.1 Dynamische inhoud wordt niet ondersteund

NGINX kan ook uitgebreid worden met modules. Deze moeten echter in het systeem worden gecompileerd, omdat dynamisch laden niet mogelijk is zoals bij Apache. Bovendien ondersteunt NGINX in tegenstelling tot Apache alleen de levering van statische inhoud, zoals afbeeldingen, CSS stylesheets of JavaScript, en biedt ook niet de mogelijkheid om overeenkomstige interpretatoren via modules te integreren. Voor dynamische inhoud (bijv. PHP-, Python- of Perl-scripts) worden de verzoeken doorgegeven aan andere software (d.w.z. in het geval van PHP, aan de overeenkomstige interpreter).

Bovendien worden geen configuratie-aanpassingen op directory-niveau (via .htaccess) ondersteund, wat het inrichten van een NGINX webserver over het algemeen wat complexer maakt dan bij Apache. Dit is echter alleen van belang als u zich in detail met serverbeheer wilt bezighouden. Hosting providers die NGINX in hun portfolio hebben, hebben meestal de juiste modules voor veelvoorkomende taken.

3 NGINX en Apache als netwerk

Wordpress unter Windows durch Lupe betrachtet
Vooral in de WordPress omgeving komt de combinatie van een NGINX reverse proxy en een of meer Apache backend servers ook veel voor.

Om te profiteren van de voordelen van beide werelden, kunt u NGINX en Apache ook in combinatie gebruiken. Terwijl NGINX bijvoorbeeld bijzonder geschikt is als reverse proxy, wordt Apache vooral gebruikt als backend server vanwege de afhandeling van dynamische content.

In de praktijk wordt de NGINX server voor één of (als load balancer) meerdere Apache servers aangesloten. De inkomende verbindingen gaan dus eerst naar de NGINX, die zorgt voor het afleveren van de statische inhoud. Voor dynamische inhoud daarentegen wordt het verzoek doorgegeven aan de Apache server, die in deze context ook kan terugvallen op zijn .htaccess bestand.

Conclusie: Apache of NGINX?

Er is geen algemeen antwoord op de vraag welke webserver beter is. Want hoewel NGINX qua prestaties mijlenver voor ligt op Apache, heeft deze laatste het voordeel als het aankomt op het verwerken van dynamische inhoud. Uiteindelijk hangt de beslissing altijd af van de individuele eisen van uw webproject. In de praktijk zijn veel gebruikers ook afhankelijk van een netwerk om te kunnen profiteren van de sterke punten van beide webservers.

Goed om te weten: De internetgemeenschap “Stack Overflow” is een goede plek voor ontwikkelaars en beheerders. Want daar vindt u niet alleen antwoorden op de meeste vragen over webservers, maar ook talrijke instructies, tutorials en ondersteuningsnota’s over het opzetten en gebruiken van Apache, NGINX en hun alternatieven. Daartoe behoren bijvoorbeeld de gratis webserver Lighttpd of de open source HTTP / 2-capabele Caddy.

De voor- en nadelen van beide webservers worden ook samengevat in de volgende video:

Gerelateerde berichten