Technologia

Nginx vs Apache — który serwer jest najszybszy?

3 min czytania
Nginx vs Apache — który serwer jest najszybszy?

Prawie połowa stron internetowych korzysta z serwera Apache lub Nginx. Oba spełniają tę samą funkcję — umożliwiają hostowanie witryn na serwerze hostingodawcy i obsługują wysyłane przez użytkowników przeglądarki zapytania. Korzystają jednak z nieco odmiennych rozwiązań. A zatem, który z nich spisuje się lepiej — Nginx vs Apache? 

Apache, czyli klasyczny serwer HTTP

Apache to jeden z najstarszych serwerów WWW — zaprojektowany jeszcze w 1995 roku przez amerykańskiego programistę, Roberta McCoola. 

Dzięki modułowej budowie, która daje administratorom pełną dowolność w doborze bibliotek i funkcji; kompatybilności z praktycznie wszystkimi systemami operacyjnymi oraz możliwości przetwarzania wielu języków programowania (nie tylko „klasycznego”, serwerowego PHP) — zdobył ogromną popularność. Już w 1996 roku zdetronizował serwer NCSA HTTPd (przy którym McCool również pracował) — i na pierwszym miejscu wśród serwerów WWW pozostał aż do 2016 roku.

Nginx i odpowiedź na problemy starszych serwerów

W tym też roku po raz pierwszy (wg danych Netcraft) pozycję lidera zdobył serwer Nginx. 

Zainicjowany w 2002 roku przez Igora Sysoeva projekt miał jedno zadanie — pokonać barierę dziesięciu tysięcy obsługiwanych połączeń z klientem jednocześnie… co zresztą udało się osiągnąć, dzięki zastosowaniu architektury zdarzeniowej.

Ngnix wyróżnia się na tle innych serwerów wysoką efektywnością zasobów, świetną skalowalnością przy dużych obciążeniach i stosunkowo niskimi wymaganiami sprzętowymi. I dlatego też obecnie obsługuje on ponad ⅓ wszystkich stron internetowych.

Apache vs Nginx — czym się różnią? 

Najważniejsza różnica pomiędzy serwerami Apache i Nginx leży w ich architekturze. Obsługa zapytań w przypadku tego drugiego oparta jest — jak już powiedzieliśmy — na zdarzeniach, co umożliwia równoległą realizację wielu zapytań. Takie zdarzeniowe podejście do architektury serwera (event-based architecture) pozwala utrzymać stabilność całego procesu nawet przy dużych ilościach zapytań przychodzących jednocześnie.

Zobacz  Jak wybrać firmę SEO do współpracy?

Serwery Apache — wręcz przeciwnie. Dla każdego zapytania muszą stworzyć oddzielny wątek (proces), co przekłada się na większe zużycie zasobów. Przy kilku zapytaniach do obsłużenia, nie jest to problemem, ale w środowisku o dużym obciążeniu — możemy mieć problemy ze skalowaniem i wydajnością serwera.

Z drugiej strony — dużą zaletą Apache jest jego rozszerzalność (i elastyczność). Już sam w sobie może się pochwalić wieloma wbudowanymi modułami — które można dodatkowo rozbudować przy użyciu m.in. zewnętrznych bibliotek. Umożliwia przy tym też szczegółową konfigurację każdej z funkcji w plikach .htaccess i httpd.conf.

W porównaniu do niego Nginx jest o wiele, wiele lżejszy. Operuje na mniejszej ilości modułów, a do konfiguracji wykorzystuje… zwykłe pliki tekstowe — co tylko upraszcza cały proces.

Kolejna kwestia to podejście do przetwarzania zawartości statycznej i dynamicznej. Apache obsłuży obie — natywnie, na poziomie serwera — Nginx poradzi sobie sam tylko z plikami statycznymi (ale znacznie szybciej niż jego starszy rywal). Pliki dynamiczne musi więc przekazać zewnętrznemu procesorowi — a to wymaga konfiguracji dodatkowego oprogramowania i połączeń między nim a serwerem (który w tej strukturze pełni rolę proxy).

A zatem — który serwer jest szybszy?

Odpowiedź jest prosta — Nginx

Ma on nad Apache’em zdecydowaną przewagę przede wszystkim przy przetwarzaniu plików statycznych. W benchmarkach Nginx okazuje się być ok. 2-2,5x szybszy — różnica jest tym bardziej istotna, im większą liczbę połączeń muszą obsłużyć porównywane serwery. Jeśli chodzi o pliki dynamiczne — tu wiele zależy od prawidłowej konfiguracji Nginx’a. Przy optymalnym połączeniu z procesorem odpowiadającym za przetwarzanie dynamiczne, osiąga podobne wyniki co Apache.

Zobacz  Google Helpful Content: co to takiego?

A przekładając to na praktykę — czas przetwarzania plików (zwłaszcza statycznych, do których zalicza się np. kod strony) ma bezpośredni wpływ na to, jak długo zajmie wczytanie się witryny w wyszukiwarce. Jeśli więc zależy Ci na jak najlepszych osiągach swojej strony (i wysokiej pozycji w wynikach wyszukiwania), Nginx powinien być nieco lepszym wyborem. 

Zawodowy copywriter oraz student psychologii na Uniwersytecie Warszawskim. W świecie marketingu internetowego równie mocno, co chwytliwe (i wartościowe) treści interesuje go dobry design. Gdy nie zajmuje się tworzeniem contentu, odkrywa perełki kina niezależnego i pracuje nad własnymi opowiadaniami.

Udostępnij

Oceń tekst

Średnia ocen 0 / 5. Liczba głosów: 0

Brak głosów - oceń jako pierwszy!

Zapytaj o ofertę SEO
Dołącz do newslettera
Powiązane artykuły Najnowsze Popularne

Zbuduj Twój potencjał SEO

Skonsultuj z nami Twoją sytuację w wyszukiwarce. Porozmawiajmy o Twoich celach i możliwościach współpracy