Om met 'n splinternuwe webprojek te begin, het u eintlik net twee dinge nodig: 'n gasheerverskaffer en 'n HTTP-server (HyperText Transfer Protocol). Wolkverskaffers soos Amazon Web Services en Microsoft Azure bied 'n verskeidenheid platformopsies om aan die grootte en spoedvereistes van u webwerf te voldoen. Sodra u by 'n wolkgasheer aangesluit het, kan u kies watter HTTP-bediener op u gevirtualiseerde hardeware moet loop.
'N HTTP-bediener is verantwoordelik om webversoeke van die besoekers van u webwerf te aanvaar en dan met die toepaslike inhoud op hul blaaier te reageer. Byvoorbeeld, by 'n basiese webversoek kan HTML-teksinhoud en 'n reeks gekoppelde beelde gevra word. Die HTTP-bediener sal 'n webrespons lewer wat blaaiers soos Google Chrome of Mozilla Firefox kan verstaan ​​en vertoon.
Wat HTTP-bedieners betref, oorheers twee oplossings 'n groot deel van die huidige landskap: Apace en NGINX (wat soos 'Engine X' uitgespreek word). Lees verder om die basiese beginsels van albei te leer en hoe hulle met mekaar vergelyk in terme van argitektuur, uitvoering en ander kategorieë.
0.3 Oorwegings van argitektuur
0.3.2 Prestasie vergelykings
0.3.3 Gemak van implementering
0.3.4 Verenigbaarheid en ondersteuning
Die Apache-webbedieneroplossing bestaan ​​al sedert die middel van die negentigerjare. Gegewe die lang lewe en stabiliteit van die sagteware, bly dit een van die gewildste opsies om webwerwe aan te bied. Dit is 'n belangrike deel van die LAMP-ontwikkelingsstapel, wat deur spanne van alle groottes gebruik word om dinamiese toepassings op die internet te ontplooi. Die ander elemente van die LAMP-stapel is Linux (bedryfstelsel), MySQL (databasis) en PHP (skrip aan die serverkant).
Apache word aangebied as 'n gratis, open source sagtewarepakket. Dit word bestuur en ontwikkel deur die Apache Software Foundation. Toe die wêreldwye web in die negentigerjare op die toneel aankom, was Apache die standaardbedieneroplossing vir die meeste webwerwe. Dit is ontwerp met die oog op eenvoud, en hoewel dit buigsaamheid en skaalbaarheid moontlik maak, het Apache gewild geword in 'n tyd toe die internetverkeersvlakke baie laer was as wat dit tans is.
Die NGINX-webbedieneroplossing is die eerste keer in 2002 vrygestel. Dit is geskep deur 'n enkele stelseladministrateur in Rusland en het twee jaar later deel geword van die open source-gemeenskap. Die ontwerp agter NGINX fokus spesifiek op spoed en werkverrigting, twee gebiede waar sommige glo dat Apache ontbreek. In werklikheid het die NGINX-projek oorspronklik ontstaan ​​weens die openbare uitdaging C10K, wat ontwikkelaars gevra het om 'n HTTP-oplossing te ontwerp wat 10.000 gelyktydige gebruikers op 'n bestendige vlak van prestasie kan hanteer.
NGINX het die afgelope dekade in gewildheid gegroei, veral onder startups wat hul hardeware vinnig moet laat groei. In die algemeen word NGINX egter beskou as moeiliker om op te stel en te integreer as Apache.
Oorwegings van argitektuur
Die Apache-sagtewarepakket bevat 'n stel multiverwerkingsmodules (bekend as MPM's) wat 'n bedieneradministrateur toelaat om te bepaal hoe hul HTTP-oplossing versoeke moet hanteer. Hierdie tipe argitektuur sorg vir groot buigsaamheid en aanpassing.
Die mees basiese Apache-module is mpm_prefork. Dit werk op 'n enkele draadlogika, waar elke bedienerproses een webversoek op 'n slag hanteer. Dit is die aanbevole module vir webprojekte wat in die PHP-skriptaal gebaseer is. 'N Ander Apache-module is mpm_worker, wat meerdere drade tegelyk ondersteun. Dit sal help om Apache meer doeltreffend en skaalbaar te maak. Die laaste primêre Apache-module, mpm_event, werk op 'n soortgelyke manier as mpm_worker, maar dra by tot beter ondersteuning vir verbindings wat bybly, wat 'n vereiste is vir baie moderne webtoepassings.
NGINX onderskei hom beslis van Apache in terme van argitektuur. Dit is gebaseer op die konsep van gebeurtenisgedrewe werking eerder as om prosesse of drade te gebruik. Wat dit beteken is dat 'n enkele NGINX-werker duisende HTTP-verbindings tegelyk kan hanteer.
NGINX maak staat op 'n lusstelsel wat werkers in staat stel om nuwe versoeke vinnig op te tel elke keer dat 'n gebeurtenis plaasvind. Gebeurtenisse word asinchronies verwerk, wat beteken dat hulle nie hoef te wag totdat ander gebeure opeenvolgend toegeken word nie.
Deesdae val webinhoud in een van twee kategorieë: staties of dinamies. Statiese inhoud bevat alles op 'n webblad wat konsekwent bly, ongeag hoe die webwerf gebruik word. Byvoorbeeld, 'n maatskappy se logo bo-aan 'n webwerf is 'n stuk statiese inhoud. Aan die ander kant word dinamiese inhoud, wat beheer word deur skriftaal soos PHP, beheer en sal dit verander op grond van die sessie van die gebruiker of ander veranderlikes. E-poswebwerwe, bankwebwerwe en sosiale netwerke maak almal staat op dinamiese inhoud om gebruikers hul individuele data te wys.
Apache kan slegs statiese inhoud op 'n enkele draadbasis bedien, wat NGINX tot 'n meer dwingende oplossing maak vir webprojekte wat vinnig 'n groot hoeveelheid statiese inhoud benodig. Apache bied egter 'n paar voordele as dit kom by dinamiese inhoud. Dit kan maklik met PHP geïntegreer word en kan 'n skripverwerker direk in die HTTP-werker insluit. Die basiese NGINX-sagtewarepakket bevat nie ondersteuning vir die lewering van dinamiese inhoud nie, dus u moet 'n eksterne verwerker by u sagtewarestapel voeg om dit te ondersteun.
Buite besoekers aan u webwerf sal nie omgee watter soort HTTP-bediener u op die backend gebruik nie. Hulle wil slegs vinnig en betroubaar toegang hê tot u inhoud. Om hierdie rede moet prestasie die belangrikste metriek wees wat u moet oorweeg wanneer u beide Apache en NGINX as webhosting-opsies beoordeel.
Danksy die gebeurtenisgedrewe argitektuur word NGINX oor die algemeen beskou as die vinnigste HTTP-oplossing. Dit werk op minimale bronne, selfs al neem u webverkeer mettertyd toe. Dit lei tot 'n lae geheue- en CPU-gebruik, terwyl Apache meer hardeware-gebruik in tye van verhoogde lading benodig.
Gemak van implementering
As dit op 'n webbediener geïnstalleer word as deel van die LAMP-sagtewarestapel, is die Apache HTTP-gasheer ongelooflik maklik om op te stel en uit te voer. Die meeste administrateurs hoef glad nie die multi-verwerkingsmoduleinstellings te verander nie. Die meeste aanpassing van Apache sal op die gidsvlak plaasvind in die sg. Htaccess-lêers.
Met hierdie klein teksitems kan u reëls en aanwysings skryf oor hoe die HTTP-bediener sekere soorte versoeke moet hanteer. U kan byvoorbeeld URL-herskryf aanskakel sodat 'n spesifieke webadres in u domein bronne vanaf 'n ander plek sal laai. Dit word gereeld op sosiale media-webwerwe gebruik waar "/ username" aan die einde van 'n URL verskyn.
NGINX ondersteun nie .htaccess-lêers of ander konfigurasies op 'n gidsvlak nie. Dit maak die verwerking van versoeke vinniger en veiliger, maar beperk steeds die beheer wat 'n stelseladministrateur het.
Verenigbaarheid en ondersteuning
HTTP-bedieners word gewoonlik op UNIX-gebaseerde bedryfstelsels bedryf, veral open source Linux-platforms. Dit is ter wille van die snelheid, want UNIX word beskou as die doeltreffendste bedryfstelsel wat beskikbaar is. Beide Apache en NGINX kan op gewilde Linux-verspreidings soos Ubuntu of BSD geïnstalleer word.
Apache bied ook volledige ondersteuning vir die Microsoft Windows Server-bedryfstelsel. NGINX kan ook gekonfigureer word om ook op Windows te werk, maar word meestal as minder stabiel beskou. As u organisasie Windows uitsluitlik op sy webbedieners bestuur, is Apache die logiese keuse.
Apache het 'n robuuste aanlyn dokumentasieportaal met vrystellingsnotas, naslaanhandleidings, gebruikershandleidings en tutoriale om u te help om Apache in u wolkomgewing te laat installeer en dit vir 'n webtoepassing te kan gebruik. NGINX bied 'n soortgelyke dokumentasie-bewaarplek wat basiese konfigurasie sowel as 'n meer gedetailleerde ontwikkelingsgids dek.
Apache en NGINX is albei baie gewilde HTTP-bedieneroplossings in vandag se moderne wêreld van wolkrekenaarkunde. Die meeste van die beste gasheerondernemings in Kanada gebruik Apache en NGINX.
Om een ​​van u een in u ontwikkelingsstapel te plaas, is 'n goeie keuse, aangesien dit stabiele werkverrigting en betroubaarheid sal bied.
As spoed u topprioriteit is en u webwerf 'n groot hoeveelheid statiese inhoud bevat, dan is NGINX moontlik die beste opsie. Dit word ook die voorkeurkeuse onder ontwikkelingspanne wat 'n mikrosdiens-argitektuur bou met baie substelsels wat met mekaar in wisselwerking is. Aan die ander kant sal dit moontlik wees dat klein ontwikkelaars of beginners dit met Apache hou, aangesien dit makliker is om op te stel en vooraf gekonfigureer is met sagteware-stapels van derdepartye soos LAMP.
Een ding om in gedagte te hou is dat u nie noodwendig tussen Apache en NGINX hoef te kies en van die ander een vergeet nie. In werklikheid word die twee oplossings dikwels in tandem gebruik om die beste moontlike webgasheerervaring te lewer. Met die opstel van NGINX as u aanvanklike web-instaanbediener, kan versoeke vinnig verwerk word en na die aansoeker aan 'n Apache-werker gestuur word. Van daar af kan Apache integreer met PHP of 'n ander skriftaal om die webrespons voor te berei en terug te trek na die NGINX-laag.
Maak seker dat u navorsing doen wanneer u 'n HTTP-bedieneroplossing kies. U gekose stelsel word deel van die ruggraat van u webwerf of toepassing en sal van kritieke belang wees in die daaglikse ervaring van u gebruikers.