Kiezen tussen Apache en NGINX voor uw webhostingbehoeften

Om aan de slag te gaan met een gloednieuw webproject, heb je eigenlijk maar twee dingen nodig: een hostingprovider en een HTTP-server (HyperText Transfer Protocol). Cloudproviders zoals Amazon Web Services en Microsoft Azure bieden een reeks platformopties om aan de eisen voor grootte en snelheid van uw site te voldoen. Nadat u zich heeft aangemeld bij een cloudhost, kunt u kiezen welke HTTP-server op uw gevirtualiseerde hardware wordt uitgevoerd.


Een HTTP-server is verantwoordelijk voor het accepteren van webverzoeken van bezoekers van uw site en reageert vervolgens op hun browser met de juiste inhoud. Een basiswebverzoek kan bijvoorbeeld vragen om HTML-tekstinhoud en een reeks gekoppelde afbeeldingen. De HTTP-server levert een webreactie die browsers zoals Google Chrome of Mozilla Firefox kunnen begrijpen en weergeven.

Als het op HTTP-servers aankomt, domineren twee oplossingen een groot deel van het huidige landschap: Apace en NGINX (dat wordt uitgesproken als “Engine X”). Lees verder om de basis van beide te leren en hoe ze met elkaar worden vergeleken in termen van architectuur, prestaties en andere categorieën.

Apache Basics

De Apache-webserveroplossing bestaat al sinds het midden van de jaren negentig. Gezien de lange levensduur en stabiliteit van de software, blijft het een van de meest populaire opties voor het hosten van websites. Het is een belangrijk onderdeel van de LAMP-ontwikkelingsstack, die wordt gebruikt door teams van elke omvang om dynamische applicaties op het internet te implementeren. De andere elementen van de LAMP-stack zijn Linux (besturingssysteem), MySQL (database) en PHP (server-side scripting).

Apache wordt aangeboden als een gratis, open source softwarepakket. Het wordt beheerd en ontwikkeld door de Apache Software Foundation. Toen het wereldwijde web in 1990 op het toneel verscheen, was Apache de standaard serveroplossing voor de meeste websites. Het is ontworpen met het oog op eenvoud en hoewel het flexibiliteit en schaalbaarheid mogelijk maakt, werd Apache populair in een tijd waarin het internetverkeer veel lager was dan nu.

Basisbeginselen van NGINX

De NGINX-webserveroplossing werd voor het eerst uitgebracht in 2002. Het werd gemaakt door een enkele systeembeheerder in Rusland en werd twee jaar later onderdeel van de open-sourcecommunity. Het ontwerp achter NGINX richt zich specifiek op snelheid en prestaties, twee gebieden waar sommigen van mening zijn dat Apache ontbreekt. In feite is het NGINX-project oorspronkelijk ontstaan ​​als gevolg van de C10K-openbare uitdaging, waarbij ontwikkelaars werd gevraagd een HTTP-oplossing te ontwerpen die 10.000 gelijktijdige gebruikers met een stabiel prestatieniveau aankan.

NGINX is het afgelopen decennium in populariteit gegroeid, vooral onder startups die hun hardware snel moeten laten groeien. Over het algemeen wordt NGINX echter als moeilijker te installeren en te integreren beschouwd dan Apache.

Architectuuroverwegingen

Het Apache-softwarepakket bevat een set multiprocessing-modules (ook wel MPM’s genoemd) waarmee een serverbeheerder kan bepalen hoe hun HTTP-oplossing verzoeken moet afhandelen. Dit type architectuur zorgt voor grote flexibiliteit en maatwerk.

De meest elementaire Apache-module is mpm_prefork. Het werkt op single-thread logica, waarbij elk serverproces één webverzoek tegelijk afhandelt. Dit is de aanbevolen module voor webprojecten in de scripttaal PHP. Een andere Apache-module is mpm_worker, die tegelijkertijd meerdere threads ondersteunt. Dit zal Apache helpen efficiënter en schaalbaarder te zijn. De laatste primaire Apache-module, mpm_event, werkt op dezelfde manier als mpm_worker, maar voegt betere ondersteuning toe voor keep-alive-verbindingen, wat een vereiste is voor veel moderne webapplicaties.

NGINX onderscheidt zich absoluut van Apache op het gebied van architectuur. Het is gebaseerd op het concept van een gebeurtenisgestuurde operatie in plaats van processen of threads te gebruiken. Dit betekent dat een enkele NGINX-werker duizenden HTTP-verbindingen tegelijkertijd kan verwerken.

NGINX vertrouwt op een lussysteem waarmee werknemers snel nieuwe verzoeken kunnen oppikken telkens wanneer een gebeurtenis wordt geactiveerd. Gebeurtenissen worden asynchroon verwerkt, wat betekent dat ze niet hoeven te wachten tot andere gebeurtenissen opeenvolgend worden toegewezen.

Contentverwerking

Tegenwoordig valt webcontent in een van de twee categorieën: statisch of dynamisch. Statische inhoud omvat alles op een webpagina dat consistent blijft, ongeacht hoe de site wordt gebruikt. Een bedrijfslogo bovenaan een website is bijvoorbeeld een stuk statische inhoud. Dynamische inhoud daarentegen wordt beheerd door scripttalen zoals PHP en zal veranderen op basis van de sessie van een gebruiker of andere variabelen. E-mailsites, banksites en sociale netwerken vertrouwen allemaal op dynamische inhoud om gebruikers hun individuele gegevens te tonen.

Apache kan alleen statische inhoud aanbieden op single-thread basis, wat NGINX een aantrekkelijkere oplossing maakt voor webprojecten die een grote hoeveelheid statische inhoud nodig hebben die snel wordt afgeleverd. Apache biedt echter enkele voordelen als het gaat om dynamische inhoud. Het integreert gemakkelijk met PHP en kan een scriptprocessor rechtstreeks in de HTTP-werker integreren. Het standaard NGINX-softwarepakket biedt geen ondersteuning voor dynamische inhoudslevering, dus u moet een externe processor toevoegen aan uw softwarestack om dit te ondersteunen.

Prestatievergelijkingen

Externe bezoekers van uw website kunnen het niet schelen wat voor soort HTTP-server u gebruikt in de backend. Ze houden zich alleen bezig met het snel en betrouwbaar openen van uw inhoud. Om deze reden moeten prestaties de belangrijkste maatstaf zijn waarmee rekening moet worden gehouden bij het evalueren van zowel Apache als NGINX als webhostingopties.

Dankzij de eventgestuurde architectuur wordt NGINX algemeen beschouwd als de snelste HTTP-oplossing. Het draait op minimale bronnen, zelfs als uw webverkeer met de tijd groeit. Dit resulteert in een laag geheugen en CPU-gebruik, terwijl Apache mogelijk meer hardwaregebruik vereist in tijden van verhoogde belasting.

Gemak van implementatie

Indien geïnstalleerd op een webserver als onderdeel van de LAMP-softwarestack, is de Apache HTTP-host ongelooflijk eenvoudig te configureren en uit te voeren. De meeste beheerders hoeven de instellingen van de multi-verwerkingsmodule helemaal niet te wijzigen. De meeste Apache-aanpassingen vinden plaats op directory-niveau in zogenaamde .htaccess-bestanden.

Met deze kleine tekstitems kunt u regels en aanwijzingen schrijven over hoe de HTTP-server bepaalde soorten verzoeken moet afhandelen. U kunt bijvoorbeeld het herschrijven van URL’s inschakelen, zodat een specifiek webadres in uw domein bronnen vanaf een andere locatie laadt. Dit wordt vaak gebruikt op websites van sociale media waar “/ gebruikersnaam” aan het einde van een URL verschijnt.

NGINX ondersteunt geen .htaccess-bestanden of andere configuratie op directory-niveau. Dit maakt verzoekverwerking sneller en veiliger, maar beperkt nog steeds de controle die een systeembeheerder heeft.

Compatibiliteit en ondersteuning

HTTP-servers worden doorgaans uitgevoerd op UNIX-besturingssystemen, met name open-source Linux-platforms. Dit is omwille van de snelheid, omdat UNIX wordt beschouwd als het meest efficiënte besturingssysteem dat beschikbaar is. Zowel Apache als NGINX kunnen worden geïnstalleerd op populaire Linux-distributies zoals Ubuntu of BSD.

Apache biedt ook volledige ondersteuning voor het Microsoft Windows Server-besturingssysteem. NGINX kan worden geconfigureerd om ook op Windows te draaien, maar wordt over het algemeen als minder stabiel beschouwd. Als uw organisatie uitsluitend Windows op haar webservers draait, is Apache de logische keuze.

Apache heeft een robuuste online documentatieportal met release-opmerkingen, referentiehandleidingen, gebruikershandleidingen en zelfstudies om u te helpen Apache in uw cloudomgeving te installeren en het voor een webapplicatie te gaan gebruiken. NGINX biedt een vergelijkbaar type documentatierepository die de basisconfiguratie omvat, evenals een meer gedetailleerde ontwikkelingsgids.

Overzicht

Apache en NGINX zijn beide zeer populaire HTTP-serveroplossingen in de moderne wereld van cloud computing. De meeste van de beste hostingbedrijven in Canada gebruiken Apache en NGINX.

Het is verstandig om een ​​van beide in uw ontwikkelstack te plaatsen, omdat ze stabiele prestaties en betrouwbaarheid bieden.

Als snelheid uw topprioriteit is en uw website een grote hoeveelheid statische inhoud zal hosten, dan is NGINX wellicht de beste optie. Het wordt ook de voorkeurskeuze onder ontwikkelingsteams die een microservice-architectuur bouwen met veel subsystemen die met elkaar communiceren. Aan de andere kant kunnen kleine ontwikkelaars of nieuwkomers beter bij Apache blijven omdat het eenvoudiger is in te stellen en vooraf is geconfigureerd met softwarestacks van derden zoals LAMP.

Een ding om in gedachten te houden is dat je niet per se hoeft te kiezen tussen Apache en NGINX en de andere hoeft te vergeten. In feite worden de twee oplossingen vaak samen gebruikt om de best mogelijke webhostingervaring te bieden. Met NGINX ingesteld als uw eerste webproxy, kunnen verzoeken snel worden verwerkt en aan het einde van de toepassing worden doorgestuurd naar een Apache-werker. Van daaruit kan Apache integreren met PHP of een andere scripttaal om de webreactie voor te bereiden en terug te lussen naar de NGINX-laag.

Zorg ervoor dat u uw onderzoek doet bij het selecteren van een HTTP-serveroplossing. Het door u gekozen systeem wordt onderdeel van de ruggengraat van uw website of applicatie en is cruciaal in de dagelijkse ervaring van uw gebruikers.

Dit vind je misschien ook leuk:

  • Beste webhosting
  • Beste Website Builder

Referenties en afbeeldingscredits:

  • Nginx.com
  • ESDS.co.in
  • TutorialsPoint.com
  • NTU.edu.sg
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map