GNU/Linux >> Znalost Linux >  >> Linux

Apache vs Nginx:Který webový server byste si měli vybrat

Apache vs Nginx je zasloužené téma. Pokud si nejste jisti, který server je pro vás lepším řešením, pojďme zjistit odpověď v tomto článku.

Apache a Nginx jsou dnes nejoblíbenější webové servery, které pohání internet. Společně jsou zodpovědné za obsluhu více než 50 % provozu na internetu. Ale Apache v posledních letech zaznamenal pokles ve prospěch Nginx. Na vysoké úrovni dělají obě platformy stejnou základní věc:hostují a poskytují webový obsah. Oba mají jedinečné schopnosti, které vyhovují konkrétním požadavkům na výpočetní techniku, takže jeden je v různých scénářích vhodnější než druhý.

Apache:Webový server bohatý na funkce

Apache je modulární aplikace webového serveru řízená procesem, která při každém současném připojení vytváří nové vlákno. Podporuje řadu funkcí. Mnoho z nich je zkompilováno jako samostatné moduly a rozšiřují jeho základní funkčnost. Moduly Apache mohou poskytnout vše od podpory programovacího jazyka na straně serveru až po mechanismus ověřování.

Webový server Apache je modulární aplikace kde si administrátor může vybrat požadovanou funkcionalitu a nainstalovat různé moduly podle konkrétní požadované funkce. Všechny moduly lze zkompilovat jako Dynamické sdílené objekty (DSO), který existuje odděleně od hlavního souboru Apache. DSO přístup je vysoce doporučován, protože velmi zjednodušuje přidávání/odebírání/aktualizaci modulů z konfigurace serverů.

Další základní funkcí architektury Apache jsou filtry , které umožňují modulům interakci s obsahem vytvořeným jinými moduly. Tato interakce zahrnuje šifrování, antivirové kontroly a kompresi statického i dynamického obsahu.

Apache je často vybírán správci pro jeho flexibilitu, výkon a širokou podporu.

Nginx:Navrženo pro výkon a škálovatelnost

Nginx byl vytvořen ruským softwarovým vývojářem jménem Igor Sysoev jako odpověď na problém známý jako C10K – zpracování 10 000 současných připojení klientů ke klientům. Byl napsán speciálně pro řešení omezení výkonu webových serverů Apache. Server byl poprvé vytvořen jako škálovací nástroj pro web rambler.ru v roce 2002.

NGINX je vysoce výkonný asynchronní webový server. Používá událostmi řízenou architekturu ke zpracování velkého množství připojení. Je nyní populárnější než webový server Apache, a to z různých důvodů, které uvidíme v tomto článku.

Nginx se používal většinou pro obsluhu statických souborů, ale dnes se vyvinul jako kompletní webový server, který se zabývá celým spektrem serverových úloh. Dnes se Nginx používá také jako reverzní proxy, vyrovnávání zatížení a pro ukládání do mezipaměti HTTP. V některých případech použití slouží Nginx také jako webový akcelerátor nebo terminátor SSL/TLS.

Nginx je často vybírán správci pro jeho efektivitu zdrojů a odezvu při zatížení.

Apache versus Nginx:Podrobné srovnání

Architektura

V případě Apache versus Nginx existuje zásadní rozdíl mezi architekturami obou webových serverů, na kterých fungují.

Hlavní rozdíl mezi Apache a Nginx je především v tom, jak zpracovávají požadavky klienta. Apache používá procesně řízený přístup a pro každý požadavek vytváří nové vlákno. Zatímco NGINX používá architekturu řízenou událostmi ke zpracování více požadavků v rámci jednoho vlákna.

V Apache je jedno vlákno přidruženo pouze k jednomu připojení, zatímco jedno vlákno v Nginx dokáže zpracovat více připojení. Všechny procesy jsou umístěny ve smyčce událostí spolu s ostatními připojeními a jsou spravovány asynchronně. Tento proces spotřebovává méně paměti, čímž se zvyšuje výkon.

Navíc, protože spotřeba paměti Nginx je nižší, má tendenci zvládat více připojení současně bez přetížení hostitelského serveru. Pokud Apache čelí velkému množství požadavků, může spotřebovat celou systémovou paměť a vyžadovat ukládání dat do swapu, což výrazně zpomaluje výkon.

Výkon:statický / dynamický obsah

Výkon webového serveru se většinou posuzuje podle dvou parametrů, tj. podle schopnosti zpracovávat statický i dynamický obsah.

Statické soubory nevyžadují žádné zpracování, a proto je to užitečné pro měření doby odezvy serverů. Jak rychle tedy může každý server doručit malé statické soubory? Pokud jde o statický obsah, zde Nginx září, protože soubory mohou být klientovi doručeny přímo a rychle. Nginx funguje 2,5krát rychleji než Apache podle srovnávacího testu provedeného spuštěním až 1 000 současných připojení. Zároveň je nižší spotřeba RAM. Aby Nginx zvládl zátěž, spotřeboval o 5–6 % méně systémové paměti. Rozdíl spočívá především v architektuře serveru.

Pro zobrazování dynamického obsahu výsledky testu ukázaly, že výkon Apache versus Nginx byl u obou naprosto stejný.

Nginx nemá žádnou schopnost nativně zpracovávat dynamický obsah. Není určen pro nativní zpracování dynamického obsahu. Nginx musí předat externímu procesoru, aby zvládl PHP a další požadavky na dynamický obsah. To může věci mírně zkomplikovat, zvláště když se snažíte předvídat počet povolených připojení.

Na rozdíl od Ngnix může Apache zpracovávat dynamický obsah vložením procesoru jazyka, jako je PHP, do každé ze svých pracovních instancí. To mu umožňuje spouštět dynamický obsah na samotném webovém serveru, aniž by se musel spoléhat na externí komponenty.

Přizpůsobení

Apache obsahuje dynamicky načítané moduly které lze použít, kdykoli je to potřeba. Server podporuje mnoho různých modulů, oficiálních i třetích stran. Díky tomu je Apache velmi přizpůsobitelná platforma, kterou si uživatelé mohou přizpůsobit podle svých potřeb. Moduly lze použít pro přepisování URL, ověřování klientů, protokolování, ukládání do mezipaměti, zpevnění serveru, kompresi, šifrování a další. Dynamické moduly mohou značně rozšířit základní funkce bez velké dodatečné práce.

Moduly Nginx je třeba integrovat do jádra a nelze je dynamicky načítat. Aby uživatelé mohli zahrnout nestandardní moduly, musí svůj server zkompilovat ze zdroje.

Nedostatek této schopnosti na webovém serveru Nginx činí Apache v tomto ohledu flexibilnějším.

Konfigurace

Kromě hlavního konfiguračního souboru umožňuje Apache další konfiguraci na základě jednotlivých adresářů prostřednictvím .htaccess soubory. Změny provedené v .htaccess soubory jsou okamžitě aplikovány do systému. Tyto soubory zahrnují vše od pravidel přesměrování po limity paměti a mnohem více a efektivně umožňují decentralizovanou konfiguraci webového serveru. Kromě toho tato architektura umožňuje neprivilegovaným uživatelům ovládat určité aspekty svých webových stránek, aniž by jim udělovala oprávnění upravovat hlavní konfiguraci.

Tato flexibilita však jde na úkor výkonu. Pokaždé .htaccess Pokud jsou soubory povoleny, musí Apache procházet celým adresářovým stromem od požadované adresy URL nebo souboru přes všechny vyšší úrovně až do kořenového adresáře serveru a poté je načíst pro každý požadavek.

Nginx neumožňuje další konfiguraci. Jeho konfigurace je centralizovaná. Máte jeden soubor, který řídí celý proces, takže je v tomto ohledu mnohem rychlejší, i když mnohem méně flexibilní. Centrální konfigurace Nginx je méně flexibilní než koncept používaný Apache, ale nabízí jasnou bezpečnostní výhodu:Změny v konfiguraci webového serveru mohou provádět pouze uživatelé, kteří mají oprávnění root.

Protože v Nginx neexistuje žádná konfigurace na úrovni adresáře, uživatelé provádějí všechny změny konfigurace zápisem direktiv do hlavního konfiguračního souboru.

Podpora

Apache a Nginx jsou obě velmi dobře zdokumentované platformy. Je velmi nepravděpodobné, že by administrátoři někdy narazili na problém nebo měli otázku, na kterou nebylo možné najít odpověď v jejich dokumentaci.

  • Dokumentace serveru Apache HTTP Server
  • Dokumentace Nginx

Pokud jde o podporu OS, Apache běží na všech operačních systémech, jako je Linux a UNIX, a má plnou podporu pro Microsoft Windows. Nginx také běží na několika moderních systémech podobných Unixu a má podporu pro Windows, ale jeho výkon ve Windows není tak stabilní jako na platformách UNIX. Pokud tedy chcete provozovat funkčně bohatý webový server s otevřeným zdrojovým kódem na Microsoft Windows, Apache je skutečně jedinou možností připravenou k produkci.

Společné používání Apache a Nginx

Jedna věc, kterou je třeba mít na paměti při porovnávání Apache versus Nginx, je, že to nemusí být vždy rozhodnutí buď/nebo. Mnoho administrátorů kombinuje obojí v hybridním řešení, které využívá přednosti každého z nich.

Apache a Nginx mohou být použity vedle sebe k vytvoření serveru optimalizovaného pro pracovní zatížení. Nginx můžete použít před Apache jako server proxy, který využívá rychlost zpracování Nginx a schopnost zvládnout velké objemy provozu. Nginx zpracovává a poskytuje statický obsah při předávání dynamického obsahu do Apache (jak je znázorněno na obrázku níže).

Nginx provádí náročnou práci související s HTTP – obsluhuje statické soubory, ukládá obsah do mezipaměti a stahuje pomalá připojení HTTP, takže server Apache může spouštět kód aplikace v bezpečném a zabezpečeném prostředí.

Závěr

V soutěži Apache versus Nginx může být rozhodnutí obtížné, pokud jde o přepínání serverů nebo serverového softwaru. Rozhodnutí, který server je pro vás nejlepší, je z velké části funkcí vyhodnocení vašich konkrétních požadavků a rozhodnutí o nejlepší možnosti. Apache i Nginx jsou vysoce výkonné webové servery s otevřeným zdrojovým kódem, které jsou schopny zpracovávat různé pracovní zátěže, aby uspokojily potřeby moderních webových požadavků.

Pokud nepotřebujete mnoho funkcí webového serveru, Nginx je správná cesta. Navíc z hlediska rychlosti a výkonu je Nginx také jasným vítězem. Je to skvělé pro weby s vysokou návštěvností.

Nginx nemůže konkurovat funkčně bohatému Apache na mnoha frontách, ale jeho asynchronní stav a bleskově rychlá architektura s jedním vláknem z něj činí chytrou volbu oproti Apache.

Na druhou stranu může být Apache preferovaným webovým serverem v jiných scénářích. Apache se lépe hodí pro prostředí sdíleného hostování a může poskytnout ovládací panel, který usnadňuje provádění změn na straně serveru.

Než se tedy rozhodnete mezi Apache a Nginx, musíte pečlivě analyzovat své požadavky, které musíte mít na svém webovém serveru.


Linux
  1. Jak nakonfigurovat webový server Apache

  2. Ladění webového serveru Apache Keepalive

  3. Jak nainstalovat webový server Nginx na Linux

  1. Apache vs Nginx - podrobné srovnání

  2. LAMP vs. LEMP – tipy pro výběr Apache nebo nginx pro váš webový server

  3. Pop!_OS vs Ubuntu Linux:Který byste si měli vybrat? Zde je Proč

  1. Co je Apache? Podrobný přehled webového serveru Apache

  2. CentOS vs Ubuntu – který si vybrat pro svůj webový server

  3. NGINX vs Apache – Výběr nejlepšího webového serveru v roce 2022