NGINX vs Apache: porównanie popularnych serwerów internetowych

NGINX vs Apache: porównanie popularnych serwerów internetowych

Internet, jaki znamy dzisiaj, rozpoczął swoją kampanię podboju na początku lat dziewięćdziesiątych. 20 września 1990 r. w centrum badań jądrowych CERN w Genewie pojawiła się pierwsza na świecie strona internetowa, która jednocześnie zwiastowała narodziny World Wide Web. W zasadzie strony internetowe to nic innego jak dokumenty HTML. Aby udostępnić odwiedzającym kilka różnych witryn, host potrzebuje oprogramowania serwerowego. Przetwarza żądania i analizuje je, aby następnie zwrócić żądane dokumenty w przeglądarce. Dwa z najpopularniejszych programów tego typu to NGINX i Apache. W tym porównaniu przedstawimy szczegółowo dwa serwery internetowe i ich funkcje oraz pokażemy, który z nich jest lepiej dostosowany do jakich celów.

Czym różni się serwer WWW od serwera aplikacji?

Zadaniem serwera WWW jest nawiązanie połączenia między serwerem fizycznym lub w chmurze a przechowywanymi stronami internetowymi (lub przeglądarkami) internautów. Z kolei serwer aplikacji odpowiada za udostępnianie aplikacji w sieci.

Czy zarówno NGINX, jak i serwer WWW Apache są odpowiednie do przetwarzania zapytań dynamicznych?

Nie, w przeciwieństwie do serwera WWW Apache, NGINX obsługuje tylko dostarczanie zawartości statycznej. Z drugiej strony zawartość dynamiczna jest przekazywana do innego oprogramowania.

Czy te dwa serwery internetowe mogą być również używane razem?

Tak, działa naprawdę dobrze. W praktyce w zapleczu można znaleźć głównie kombinację NGINX jako odwrotnego proxy i jednego lub więcej serwerów Apache.

zawartość

1. Apache: popularny flexibilista 1.1. Moduły rozszerzają funkcjonalność serwera WWW 1.2. NGINX kontra Apache: cierpienie z powodu wydajności

1.1. Moduły rozszerzające funkcjonalność serwera WWW

1.2. NGINX kontra Apache: cierpienie z powodu wydajności

2. NGINX: wysoka wydajność i lekkość 2.1. Treści dynamiczne nie są obsługiwane

2.1. Treści dynamiczne nie są obsługiwane

3. NGINX i Apache jako sieć

4. Wniosek: Apache czy NGINX? Podobne artykuły:

Podobne artykuły:

1. Apache: popularny flexibilista

Serwer WWW Apache o otwartym kodzie źródłowym istnieje na rynku od 1995 roku i według w3techs.com jest najbardziej rozpowszechnionym serwerem WWW ze wszystkich. Dzięki swojej długiej historii, rozbudowanej dokumentacji i elastycznym opcjom aplikacji serwer WWW cieszy się dużą popularnością wśród administratorów. Ogromny udział w rynku wynika przede wszystkim z tego, że wiele systemów (np. CMS) domyślnie współpracuje z Apache. Jest również preinstalowany we wszystkich głównych dystrybucjach Linuksa, takich jak Red Hat, CentOS czy Ubuntu.

Warto wiedzieć: Apache Software Foundation rozwija serwer WWW od 1999 roku.

Serwer WWW Apache jest konfigurowany za pomocą pliku .htaccess. Pozwala to na dużą elastyczność podczas przetwarzania przychodzących zapytań. Na przykład możesz zdefiniować limity przechowywania i ograniczenia przesyłania plików, skonfigurować reguły przekierowania lub ochronę katalogów (htpasswd) lub wprowadzić różne ustawienia bezpieczeństwa dotyczące obsługi plików cookie.

Jedną z największych zalet Apache jest możliwość przypisania oddzielnego pliku .htaccess z indywidualną konfiguracją do każdego poziomu lub katalogu w drzewie. Dzięki temu dostawcy hostingu współdzielonego mogą na przykład oferować swoim klientom opcję konfiguracji swojej witryny na tej samej maszynie bez wpływu na innych użytkowników. Jeśli użytkownik dokona ustawienia dla swojego dedykowanego środowiska, globalna konfiguracja serwera pozostanie nienaruszona.

1.1. Moduły rozszerzające funkcjonalność serwera WWW

Dzięki dynamicznemu systemowi modułów (który w tej formie jest również dostępny w NGINX) funkcjonalność Apache może zostać rozszerzona. Nadal możesz zainstalować moduły po skonfigurowaniu serwera WWW Apache i uruchomieniu go, a także możesz je aktywować lub dezaktywować zgodnie z wymaganiami. Oficjalną listę wszystkich modułów wchodzących w skład standardowej dystrybucji Apache można znaleźć tutaj.

Wskazówka: W dystrybucjach Linuksa opartych na Debianie moduły można aktywować lub dezaktywować bez edytowania plików konfiguracyjnych za pomocą poleceń a2enmod i a2dismod.

1.2. NGINX kontra Apache: cierpienie z powodu wydajności

Serwer WWW Apache był stale ulepszany, a jego wydajność została zoptymalizowana. Jednak nie zbliża się do benchmarku wydajności NGINX.

Głównym słabym punktem Apache jest jego wydajność. Ponieważ chociaż serwer sieciowy nadal działa niezawodnie i stabilnie na mniejszych stronach internetowych, regularnie potyka się o coraz większą liczbę jednoczesnych żądań. Wynika to głównie z faktu, że dla każdego otwartego połączenia z serwerem WWW, który wykorzystuje pamięć, uruchamiany jest osobny proces. W rezultacie logicznie jest tyle samo procesów z setkami lub tysiącami równoległych żądań. Zwiększają one drastycznie czas ładowania stron, aw najgorszym przypadku mogą nawet doprowadzić do całkowitego zatrzymania serwera WWW.

Serwer WWW Apache był stale ulepszany, a jego wydajność została zoptymalizowana. Jednak nie może nadążyć za NGINX „po wyjęciu z pudełka”.

2. NGINX: wysoka wydajność i lekkość

NGINX został wydany dopiero w 2004 roku i od początku był rozwijany z naciskiem na wydajność, serwer podstawowy i funkcje proxy. Serwer sieciowy oferuje zdecydowaną przewagę nad Apache, zwłaszcza na ograniczonych systemach, ponieważ opiera się na asynchronicznej architekturze opartej na zdarzeniach. Oznacza to, że dla każdego połączenia nie jest uruchamiany osobny proces, ale jeden proces może obsłużyć kilka tysięcy połączeń. W ten sposób NGINX jest w stanie obsłużyć dużą liczbę jednoczesnych żądań bez poświęcania szybkości i stabilności. Zużycie zasobów pozostaje względnie stałe nawet podczas szczytowych obciążeń, co oznacza, że ​​strony o wysokiej wydajności z dużą liczbą dostępów są również dostarczane z ograniczonym sprzętem (np. na Raspberry Pi).

2.1. Treści dynamiczne nie są obsługiwane

NGINX można również rozbudować o moduły. Muszą one jednak zostać wkompilowane do systemu, ponieważ dynamiczne ładowanie, jak w przypadku Apache, nie jest możliwe. Ponadto, w przeciwieństwie do Apache, NGINX obsługuje tylko dostarczanie treści statycznych, takich jak obrazy, arkusze stylów CSS lub JavaScript, a także nie oferuje możliwości integracji odpowiednich interpreterów poprzez moduły. W przypadku treści dynamicznych (np. skryptów PHP, Python lub Perl) żądania są przekazywane do innego oprogramowania (tj. w przypadku PHP do odpowiedniego interpretera).

Ponadto nie są obsługiwane żadne zmiany konfiguracji na poziomie katalogu (poprzez .htaccess), co oznacza, że ​​konfiguracja serwera WWW NGINX jest zazwyczaj nieco bardziej złożona niż w przypadku Apache. Jednak ma to znaczenie tylko wtedy, gdy chcesz szczegółowo zająć się administracją serwera. Dostawcy hostingu, którzy mają w swoim portfolio NGINX, zazwyczaj mają odpowiednie moduły do ​​typowych zadań.

3. NGINX i Apache jako sieć

W szczególności w środowisku WordPress często można znaleźć kombinację zwrotnego proxy NGINX i jednego lub więcej serwerów zaplecza Apache.

Aby skorzystać z zalet obu światów, możesz również używać łącznie NGINX i Apache. Chociaż NGINX jest szczególnie odpowiedni na przykład jako zwrotny serwer proxy, Apache jest używany głównie jako serwer zaplecza ze względu na obsługę zawartości dynamicznej.

W praktyce odbywa się to poprzez umieszczenie serwera NGINX przed jednym lub (jako load balancer) kilkoma serwerami Apache. Połączenia przychodzące trafiają najpierw do NGINX, który zajmuje się dostarczaniem zawartości statycznej. Z drugiej strony w przypadku zawartości dynamicznej żądanie jest przekazywane do serwera Apache, który w tym kontekście może również uzyskać dostęp do swojego pliku .htaccess.

4. Wniosek: Apache czy NGINX?

Na pytanie, który serwer WWW jest teraz lepszy, nie można odpowiedzieć na wszystkie pytania. Ponieważ chociaż NGINX Apache wyprzedza konkurencję pod względem wydajności, ma przewagę, jeśli chodzi o obsługę zawartości dynamicznej. Ostatecznie decyzja zawsze zależy od indywidualnych wymagań Twojego projektu internetowego. W praktyce wielu użytkowników polega również na sieci, aby korzystać z zalet obu serwerów WWW.

Warto wiedzieć: społeczność internetowa „Stack Overflow” to dobre miejsce dla programistów i administratorów. Ponieważ znajdziesz tam nie tylko odpowiedzi na większość pytań dotyczących serwerów WWW, ale także liczne instrukcje, samouczki i informacje pomocnicze dotyczące konfiguracji i korzystania z Apache, NGINX i ich alternatyw. Należą do nich na przykład darmowy serwer WWW Lighttpd lub Caddy obsługujący protokół HTTP/2 o otwartym kodzie źródłowym.

Zalety i wady dwóch serwerów internetowych można również znaleźć w następującym filmie:

30 ocen

Podobne artykuły:

Mówiąc najprościej: co to jest serwer WWW?

Reverse proxy: wyjaśnienie i obszary zastosowania

Po prostu wyjaśniono: co to jest przeglądarka i jak ...

Mówiąc wprost: czy pliki cookie są niebezpieczne?

Resolwer DNS: z adresu IP do strony internetowej

Mówiąc najprościej: co to jest serwer root?

Surfowanie incognito — jak naprawdę jesteś anonimowy?

Krótko mówiąc: co to jest serwer proxy?

Ciekawy Windows: surfowanie z kalkulatorem!

Krótko mówiąc: co to jest adres IP?

Tags
Author
Karolina Kanas

Leave a Reply