Wat maakt NGINX zo populair?

Wat maakt NGINX zo populair?

Volgens statistieken van W3Techs is Apache nog altijd de meest gebruikte webserver. Ongeveer 50 procent van alle websitehouders maakt gebruik van deze webserver. Kijk je echter alleen naar de top 10.000 meestbezochte websites, dan krijg je een ander beeld: slechts 21 procent van deze websites is gebaseerd op de Apache webserver uit 1995. Van de 1000 grootste websites is dat zelfs nog maar 16 procent.

Dat ligt deels aan het buitengewoon hoge aandeel van de Google Web Server (ca. 13 procent) onder de veel bezochte websites, want hierop draaien alle Google-websites. Maar dit resultaat hangt ook samen met de razendsnelle opkomst van de uit Rusland afkomstige webserversoftware NGINX. In 2010 was NGINX met een marktaandeel van bijna 4 procent niet meer dan een van de vele alternatieven voor Apache, maar nu wordt de onder BSD-licentie gepubliceerde software al voor meer dan de helft van alle webprojecten uit de top 10.000 en de top 1000 gebruikt.


Wat is NGINX

Wat is NGINX?

De in 2004 gepubliceerde NGINX-serversoftware werd in eerste instantie geprogrammeerd door de Russische softwareontwikkelaar Igor Sysoev. Toen was het al de bedoeling een server te ontwikkelen die uitblinkt door een buitengewoon sterke performance, en die een zo groot mogelijk aantal clients tegelijk kan bedienen, maar die toch weinig resources verbruiken. Met het oog op de toenemende populariteit van de webserver, richtte Sysoev in 2011 NGINX Inc. op. Het commerciële bedrijf is sindsdien verantwoordelijk voor de verdere ontwikkeling van de software en biedt, naast de gratis standaardversie, met NGINX Plus ook betaalde support en aanvullende functies aan, zoals een betere load balancing.

NGINX is net als Apache modulair opgebouwd. Dat betekent dat de verschillende functies beschikbaar worden gesteld via bijbehorende modules, die jij als beheerder kunt activeren of deactiveren. Dit maakt het mogelijk om uit onder andere de volgende functies te kiezen:

  • Application Acceleration (toepassingsversnelling) maakt de snelle levering van content mogelijk.
  • Reverse Proxying zorgt ervoor dat je NGINX als omgekeerde proxy (HTTP, TCP, UDP) voor webversnelling of als e-mailproxy (IMAP, POP3, SMTP) kunt gebruiken.
  • TLS-versleuteling maakt een veilige gegevensoverdracht mogelijk.
  • Bandbreedtemanagement stelt voor alle diensten de optimale bandbreedte ter beschikking.
  • Load balancing (taakverdeling) ontlast de hoofdserver door de aanvragen om te leiden.
  • Videostreaming biedt een grote capaciteit bij het streamen van MP4- en FLV-media.

Terwijl Apache voor elke client-aanvraag een nieuwe thread of een nieuw proces opent, oriënteert de NGINX-server zich op gebeurtenissen. Zo kan hij de aanvragen asynchroon verwerken, wat geheugen en tijd bespaart. De serversoftware wordt ondersteund door talrijke besturingssystemen, waaronder vele Unix-/Linux-varianten, macOS- en Windows-servers.


NGINX installeren en configureren

NGINX installeren en configureren

Gebruikers van de versie Plus krijgen bij de installatie van de software ondersteuning van NGINX-support. Over het algemeen verloopt de installatie echter volgens het wel bekende patroon met behulp van het pakketbeheer, want Linux heeft het NGINX-pakket standaard in hun repository. Mocht het pakket toch ontbreken, dan kan de broncode snel en eenvoudig van de officiële NGINX website worden gedownload. Hierna wordt aan de hand van een voorbeeld toegelicht hoe je de webserver onder Linux kunt installeren en configureren.

  1. Met het volgende commando update je eerst het pakketbeheer, zodat je systeem bij de installatie (die door de tweede coderegel wordt gestart) toegang heeft tot de nieuwste versie van het NGINX-pakket.
    sudo apt-get update
    sudo apt-get install nginx

  2. NGINX wordt in principe direct daarna gestart. Om te controleren of de software goed werkt, roep je de NGINX-landingpage op in je browser via de domeinnaam van de server of via het openbare IP-adres. Als de installatie succesvol is verlopen, verschijnt er een begroetingstekst.
     Installatie Nginx
    De installatie van NGINX is gelukt


  3. Alles wat voor de NGINX-configuratie nodig is, vind je in de map /etc/nginx – onder andere het centrale configuratiebestand nginx.conf. Telkens als je wijzigingen aan dit bestand aanbrengt, moet de server met een van de volgende commando’s opnieuw worden gestart, zodat de wijzigingen worden toegepast:
    sudo service nginx reload
    sudo service nginx restart
    Met de parameters stop en start kun je de dienst ook volledig uitschakelen en weer inschakelen.

  4. De syntaxis van het configuratiebestand heeft de volgende kenmerken:
    • Instellingen: alle instellingen beginnen met de naam van de variabele. Gescheiden door een spatie volgen er één of meerdere argumenten, en aan het einde staat altijd een puntkomma.
      worker_connections 768;
    • Bovenliggende instellingen: sommige instellingen, bijvoorbeeld de variabele events, bevatten argumenten die op hun beurt instellingen met eigen argumenten vormen. Deze ‘subdirectives’ worden tussen accolades ({}) geplaatst.
      events {
      worker_connections 768;
      multi_accept on;
      }
    • Hashtag (#): directives (instructies) die gedeactiveerd zijn, worden aangegeven door middel van een hashtag. Als je de hashtag verwijdert, activeer je de desbetreffende serverinstelling. In het geval van
      # multi_accept on;

      is bijvoorbeeld de optie gedeactiveerd om meerdere clients tegelijk te accepteren.

    • Tabstops en meerdere spaties: NGINX interpreteert tabs en meerdere spaties na elkaar als één spatie. Als je NGINX configureert, kun je hiervan profiteren en zo voor een ordelijke en goed leesbare structuur van het configuratiebestand zorgen.
    • Meer informatie over de afzonderlijke modules evenals NGINX-tutorials voor het configureren van web- of proxyservers op basis van de serversoftware vind je in de officiële Engelstalige gids.

Daarom is NGINX zo geliefd als webserversoftware

Daarom is NGINX zo geliefd als webserversoftware

De groeiende populariteit van NGINX heeft meerdere redenen. De eerste reden is dat de webserversoftware optimaal op de huidige eisen van veel webprojecten is afgestemd. NGINX behaalt namelijk niet alleen uitstekende resultaten bij het verwerken van een groot aantal client-aanvragen, maar is daarbij ook nog eens zuinig. Daarom is de software het perfecte antwoord op de beperkte capaciteit van mobiele gegevensverbindingen. NGINX helpt jou als websitehouder er dus bij je content ook zo snel mogelijk te leveren aan gebruikers van mobiele apparaten. Verder overtuigt het opensourceproduct van de Russische ontwikkelaars door zijn flexibele toepassingsmogelijkheden. Naast de klassieke HTTP-webservervariant doet NGINX het ook goed op het gebied van reverse proxying, bijvoorbeeld als e-mailproxyserver of load balancer.

NGINX is echter niet altijd de beste keuze als webserver: shared hosting, waarbij de controle over de serverbronnen met behulp van door wachtwoorden beveiligde secties of interne omleidingen wordt geregeld, is daarmee lastig te realiseren. Zulke secties en omleidingen kunnen alleen in het centrale configuratiebestand worden aangemaakt en worden gerealiseerd door de server opnieuw op te starten. Mogelijke fouten hebben dan gevolgen voor alle deelnemers van de shared-hosting-instantie. Op dit gebied biedt de Apache-webserver, waarbij individuele instellingen in aparte .htaccess-bestanden worden opgeslagen, dus een duidelijk voordeel.