Przez dwie dekady Apache zmieniał kurczący się rynek serwerów WWW. Nginx nie tylko dogonił Apache, ale jest obecnie wyborem wielu witryn internetowych o dużym natężeniu ruchu. Użytkownicy Apacha mogą nie zgodzić się w tej kwestii. Dlatego trudno jest dojść do wniosku, który hosting jest lepszy. Prawda jest taka, że zarówno Apache, jak i Nginx są podstawowymi elementami kompletnych stosów internetowych (LAMP i LEMP), a ostateczny wybór zależy od indywidualnych potrzeb.
Na przykład osoby prowadzące witryny Drupal często wybierają Apache, podczas gdy użytkownicy WordPressa wydają się bardziej preferować Nginx. W związku z tym celem tego artykułu jest pomoc w lepszym zrozumieniu własnych wymagań, a nie dostarczanie stereotypowych rekomendacji dla wszystkich. Poniższe porównanie Nginx i Apache zapewni dokładny przegląd.
Czy Nginx czy Apache jest lepszym serwerem?
1. Popularność
Od 2012 roku ponad 65% stron internetowych opierało się na Apache. Popularność wynika nie tylko z długiej historii Apache. Jest to jedno z pierwszych pionierskich programów służących rozwojowi sieci WWW. Jednak czasy się zmieniły. Według W3Tech.com na dzień 14 stycznia 2019 roku liczba stron korzystających z serwerów Apache (44,4%) była tylko nieznacznie większa niż Nginx (40,9%). Nginx i Apache dominują prawie 85% rynku serwerów WWW.

Jeśli chodzi o strony internetowe o dużym natężeniu ruchu, interesujący jest poniższy wykres. W szczególności Nginx znajduje się powyżej Apache, ale poniżej serwerów Google, usługi udostępniającej serwery dla witryn takich jak YouTube , Gmail i Dysk.
![Porównaj Nginx i Apache Porównaj Nginx i Apache]()
Duża liczba stron internetowych została przeniesiona z Apache do Nginx. Oczywiście Nginx jest uważany za nowszy i modniejszy serwer WWW. Witryny Apache o dużym ruchu, na przykład Wikipedia i New York Times, często korzystają z frontonu proxy HTTP, takiego jak Varnish.
Wniosek : różnica w popularności między Apache i Nginx bardzo szybko się zmniejsza. Pod tym względem Apache i Nginx są powiązane.
2. Prędkość
Główną cechą dobrego serwera WWW jest to, że musi działać szybko, a także łatwo obsługiwać połączenia i ruch z dowolnego miejsca. Aby zmierzyć szybkość serwera, w artykule porównano dwie popularne witryny turystyczne oparte na Apache (Expedia.com) i Nginx (Booking.com). Za pomocą narzędzia internetowego o nazwie Bitcatcha dokonano porównań z wieloma serwerami i zmierzono je w oparciu o test porównawczy Google wynoszący ponad 200 ms. Booking.com oparty na Nginx jest oceniany jako „wyjątkowo szybki”. Z kolei witryna Expedia.com oparta na Apache została oceniona jako „powyżej średniej i można ją ulepszyć”.
Jeśli wielokrotnie korzystałeś z obu tych witryn turystycznych, możesz potwierdzić, że Expedia zwraca wyniki zapytań nieco wolniej niż Booking.
Poniżej znajduje się porównanie tych dwóch hostów dla kilku innych witryn internetowych. Nginx jest szybszy w większości poniższych przypadków, z jednym wyjątkiem.
![Porównaj Nginx i Apache Porównaj Nginx i Apache]()
Wniosek : Nginx wygrywa tę rundę.
3. Bezpieczeństwo
Zarówno Nginx, jak i Apache bardzo poważnie podchodzą do bezpieczeństwa swoich witryn internetowych. Żaden solidny system nie jest kompletny bez środków zaradczych przeciwko atakom DDoS , złośliwemu oprogramowaniu i phishingowi . Obydwa serwery okresowo publikują raporty i porady dotyczące bezpieczeństwa, zapewniając poprawę aspektów bezpieczeństwa na każdym poziomie.
Wniosek : Nginx i Apache ponownie remisują w tej rundzie.
4. Połączenia jednoczesne
Należy zauważyć, że Apache pod pewnymi względami nie może się równać skali i możliwościom Nginx. W końcu Nginx został pierwotnie zaprojektowany do przyspieszania procedur obsługi FastCGI i SCGI. Jednak począwszy od wersji Apache 2.4 (wersja domyślna) nastąpiła drastyczna poprawa liczby jednoczesnych połączeń. Warto zbadać, jak daleko posunęła się ta poprawa.
Na podstawie testów na Loadimpact.com w artykule ponownie porównano Booking.com (Nginx) z Expedia.com (Apache). Dla 25 użytkowników wirtualnych witryna Nginx może rejestrować 200 żądań na sekundę, czyli 2,5 razy więcej niż Apache (80 żądań na sekundę). Oczywiście, jeśli masz dedykowaną witrynę internetową o dużym natężeniu ruchu, Nginx jest bezpieczniejszym wyborem.
![Porównaj Nginx i Apache Porównaj Nginx i Apache]()
Wniosek : Nginx wygrywa tę rundę.
5. Elastyczność
Dostawca usług hostingowych musi być wystarczająco elastyczny, aby umożliwić dostosowywanie. Apache robi to całkiem dobrze, korzystając z narzędzi .htaccess, których Nginx nie obsługuje. Umożliwia decentralizację zadań administracyjnych. Administratorzy zewnętrzni i administratorzy drugiego poziomu mogą nie mieć dostępu do głównego serwera. Ponadto Apache obsługuje ponad 60 modułów, dzięki czemu jest wysoce skalowalny. Dlatego Apache jest bardziej popularny wśród dostawców hostingu współdzielonego.
![Porównaj Nginx i Apache Porównaj Nginx i Apache]()
Wniosek : Apache wygrywa tę rundę.
Inne parametry
Wcześniej Nginx nie miał zbyt dobrej obsługi systemów operacyjnych Windows, w przeciwieństwie do Apache. Jednak tak już nie jest. Ponadto Apache został również uznany za dość słaby pod względem równoważenia obciążenia i rezerwowego proxy . Ale teraz wszystko się zmieniło!
Ostateczny wynik
Nginx wygrał nieznacznie z wynikiem 2-1. Mając to na uwadze, obiektywne porównanie Nginx i Apache pod względem specyfikacji technicznych da pełny obraz. Ostateczny wniosek jest taki, że oba hosty internetowe są przydatne na swój sposób.
Podczas gdy Apache powinien być używany z serwerem front-end (dla którego sam Nginx jest opcją), Nginx może być lepszy dzięki większemu dostosowaniu i elastyczności.