Välja mellan Apache och NGINX för dina behov av webbhotell

För att komma igång med ett helt nytt webbprojekt behöver du egentligen bara två saker: en webbhotell och en HTTP-server (HyperText Transfer Protocol). Molnleverantörer som Amazon Web Services och Microsoft Azure erbjuder en rad plattformsalternativ för att möta storleken och hastighetskraven på din webbplats. När du har registrerat dig med en molnvärd kan du välja vilken HTTP-server som ska köras på din virtualiserade hårdvara.


En HTTP-server är ansvarig för att acceptera webbegäranden från webbplatsens besökare och sedan svara på deras webbläsare med lämpligt innehåll. Till exempel kan en grundläggande webbbegäran begära HTML-textinnehåll och en serie länkade bilder. HTTP-servern levererar ett webbsvar som webbläsare som Google Chrome eller Mozilla Firefox kan förstå och visa.

När det gäller HTTP-servrar dominerar två lösningar mycket av det aktuella landskapet: Apace och NGINX (som uttalas som “Engine X”). Läs vidare för att lära dig grunderna i båda och hur de jämför med varandra när det gäller arkitektur, prestanda och andra kategorier.

Apache-grunderna

Apache-webbserverlösningen har funnits sedan mitten av 1990-talet. Med tanke på programvarans livslängd och stabilitet är det fortfarande ett av de mest populära alternativen för webbhotell. Det är en viktig del av LAMP-utvecklingsstacken, som används av team i alla storlekar för att distribuera dynamiska applikationer på internet. De andra elementen i LAMP-stacken är Linux (operativsystem), MySQL (databas) och PHP (skriptservering på serversidan).

Apache erbjuds som ett gratis open source-programvarupaket. Det hanteras och utvecklas av Apache Software Foundation. När webben kom på scenen på 1990-talet var Apache standardserverlösningen för de flesta webbplatser. Det designades med enkelhet i åtanke, och även om det möjliggör flexibilitet och skalbarhet, fick Apache popularitet under en tid då internettrafiknivåerna var mycket lägre än de är idag.

NGINX Grunder

NGINX webbserverlösning släpptes första gången 2002. Den skapades av en enda systemadministratör i Ryssland och blev en del av open source-gemenskapen två år senare. Designen bakom NGINX fokuserar specifikt på hastighet och prestanda, två områden där vissa tror att Apache saknas. I själva verket kom NGINX-projektet ursprungligen på grund av den offentliga C10K-utmaningen, som bad utvecklare att utforma en HTTP-lösning som skulle kunna hantera 10 000 samtidiga användare på en stadig prestandanivå.

NGINX har vuxit i popularitet under det senaste decenniet, särskilt bland nystartade företag som behöver växa hårdvaran snabbt. I allmänhet anses dock NGINX vara svårare att installera och integrera än Apache.

Arkitekturhänsyn

Apache-programvarupaketet innehåller en uppsättning av flera behandlingsmoduler (känd som MPM) som tillåter en serveradministratör att avgöra hur deras HTTP-lösning ska hantera förfrågningar. Denna typ av arkitektur möjliggör stor flexibilitet och anpassning.

Den mest grundläggande Apache-modulen är mpm_prefork. Det fungerar på en trådsträng logik, där varje serverprocess hanterar en webbbegäran i taget. Detta är den rekommenderade modulen för webbprojekt baserade på PHP-skriptspråk. En annan Apache-modul är mpm_worker, som stöder flera trådar samtidigt. Detta hjälper Apache att vara mer effektiv och skalbar. Den sista primära Apache-modulen, mpm_event, fungerar på liknande sätt som mpm_worker men lägger till bättre stöd för att hålla vid liv-anslutningar, vilket är ett krav för många moderna webbapplikationer.

NGINX skiljer sig definitivt från Apache när det gäller arkitektur. Det är baserat på begreppet händelsestyrd operation snarare än att använda processer eller trådar. Vad detta betyder är att en enda NGINX-arbetare kan hantera tusentals HTTP-anslutningar samtidigt.

NGINX förlitar sig på ett looping-system som gör det möjligt för arbetare att snabbt hämta nya förfrågningar varje gång en händelse utlöses. Händelser behandlas asynkront, vilket betyder att de inte behöver vänta på att andra händelser tilldelas i följd.

Innehållshantering

Idag faller webbinnehåll i en av två kategorier: statisk eller dynamisk. Statiskt innehåll innehåller allt på en webbsida som förblir konsekvent oavsett hur webbplatsen används. Exempelvis är en företagslogotyp högst upp på en webbplats ett statiskt innehåll. Dynamiskt innehåll, å andra sidan, i kontrollerat av skriptspråk som PHP och kommer att ändras baserat på en användares session eller andra variabler. E-postwebbplatser, banksajter och sociala nätverk förlitar sig alla på dynamiskt innehåll för att visa användarna deras individuella data.

Apache kan bara betjäna statiskt innehåll på en trådstråd, vilket gör NGINX till en mer övertygande lösning för webbprojekt som behöver en stor mängd statiskt innehåll levereras snabbt. Apache erbjuder dock vissa fördelar när det gäller dynamiskt innehåll. Det integreras enkelt med PHP och kan bädda in en skriptprocessor direkt i HTTP-arbetaren. Det grundläggande NGINX-programvarupaketet inkluderar inte stöd för dynamisk leverans av innehåll, så du måste lägga till en extern processor till din programvarubunke för att stödja den.

Prestandajämförelser

Utanför besökare på din webbplats kommer inte att bry sig om vilken typ av HTTP-server du använder på backend. De handlar bara om att få åtkomst till ditt innehåll snabbt och pålitligt. Av denna anledning bör prestanda vara den viktigaste metriken att beakta när man utvärderar både Apache och NGINX som webbhotellalternativ.

Tack vare sin händelsestyrd arkitektur anses NGINX i allmänhet vara den snabbaste HTTP-lösningen. Det körs på minimala resurser, även när din webbtrafik växer med tiden. Detta resulterar i låg minne och CPU-användning, medan Apache kan kräva mer hårdvaruanvändning under tider med ökad belastning.

Enkel implementering

När den är installerad på en webbserver som en del av LAMP-programvarubunten är Apache HTTP-värden otroligt enkel att konfigurera och köra. De flesta administratörer kommer inte att behöva ändra inställningarna för flerbehandlingsmodulen alls. De flesta anpassningar av Apache kommer att ske på katalognivå i vad som kallas .htaccess-filer.

Dessa små textobjekt ger dig möjlighet att skriva regler och anvisningar för hur HTTP-servern ska hantera vissa typer av förfrågningar. Till exempel kan du aktivera omskrivning av URL så att en specifik webbadress i din domän laddar resurser från en annan plats. Detta används ofta på webbplatser med sociala medier där “/ username” visas i slutet av en URL.

NGINX stöder inte .htaccess-filer eller annan konfiguration på katalognivå. Detta gör behandlingen av begäran snabbare och säkrare, men begränsar fortfarande den kontroll som en systemadministratör har.

Kompatibilitet och support

HTTP-servrar körs vanligtvis på UNIX-baserade operativsystem, särskilt Linux-plattformar med öppen källkod. Detta är för hastighetens skull eftersom UNIX anses vara det mest effektiva operativsystemet som finns tillgängligt. Både Apache och NGINX kan installeras på populära Linux-distributioner som Ubuntu eller BSD.

Apache erbjuder också fullt stöd för operativsystemet Microsoft Windows Server. NGINX kan också konfigureras för att köras på Windows men anses i allmänhet vara mindre stabilt. Om din organisation exklusivt kör Windows på sina webbservrar är Apache det logiska valet.

Apache har en robust online dokumentationsportal med utgivningsanteckningar, referenshandböcker, användarguider och handledning för att hjälpa dig att få Apache installerat i din molnmiljö och börja använda den för en webbapplikation. NGINX erbjuder en liknande typ av dokumentationsförråd som täcker grundläggande konfiguration samt en mer detaljerad utvecklingsguide.

Sammanfattning

Apache och NGINX är båda mycket populära HTTP-serverlösningar i dagens moderna värld av molnberäkning. De flesta av de bästa värdföretagen i Kanada använder Apache och NGINX.

Att sätta in endera i din utvecklingsbunt är ett klokt val, eftersom de ger stabila prestanda och tillförlitlighet.

Om hastighet är din högsta prioritet och din webbplats kommer att vara värd för en stor mängd statiskt innehåll, kan NGINX vara det bästa alternativet. Det blir också det föredragna valet bland utvecklingsgrupper som bygger en mikroservicearkitektur med massor av delsystem som interagerar med varandra. Å andra sidan kan små utvecklare eller nybörjare vara bättre på att hålla sig till Apache eftersom det är lättare att konfigurera och kommer förkonfigureras med programvarubunken från tredje part som LAMP.

En sak att tänka på är att du inte nödvändigtvis behöver välja mellan Apache och NGINX och glömma bort den andra. Faktum är att de två lösningarna ofta används i tandem för att ge bästa möjliga webbhotellupplevelse. Med NGINX konfigurerat som din första webbproxy kan förfrågningar behandlas snabbt och skickas till en Apache-anställd på applikationsslutet. Därifrån kan Apache integreras med PHP eller något annat skriptspråk för att förbereda webbsvaret och slinga det tillbaka till NGINX-lagret.

Se till att du gör din forskning när du väljer en HTTP-serverlösning. Ditt valda system kommer att bli en del av ryggraden på din webbplats eller applikation och kommer att vara kritisk i dina användares vardagliga upplevelse.

Du kanske också gillar:

  • Bästa webbhotell
  • Bästa webbplatsbyggare

Referenser och bildkrediter:

  • 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