Dlaczego uważam, że Nginx jest praktycznie lepszy niż Apache

Dlaczego uważam, że Nginx jest praktycznie lepszy niż Apache

Według najnowszej ankiety serwera WWW przeprowadzonego przez Netcraft, przeprowadzonego pod koniec 2017 r.

Apache to bezpłatny serwer HTTP z otwartym opennikiem dla systemów operacyjnych podobnych do UNIX i systemu Windows. Został zaprojektowany jako bezpieczny, wydajny i rozszerzalny serwer, który zapewnia usługi HTTP zsynchronizowane z dominującymi standardami HTTP.

Od czasu jego uruchomienia, Apache jest najpopularniejszym serwerem WWW w Internecie od 1996 roku. Jest to de facto standard dla serwerów internetowych w ekosystemie Linux i Open Source. Nowi użytkownikom Linux zwykle łatwiej jest skonfigurować i używać.

Nginx (wymawiane 'Silnik-X') to bezpłatny, open source, wysokowydajny serwer HTTP, odwrotny serwer proxy i serwer proxy IMAP/POP3. Podobnie jak Apache, działa również w systemach operacyjnych podobnych do UNIX i Windows.

Znany z wysokiej wydajności, stabilności, prostej konfiguracji i niskiego zużycia zasobów, przez lata stał się tak popularny, a jego użycie w Internecie zmierza w celu uzyskania większych wysokości. Jest to teraz wybrany serwer internetowy wśród doświadczonych administratorów systemu lub mistrzów internetowych najlepszych witryn.

Niektóre z zajętych stron zasilanych przez:

  • Apache są: PayPal, BBC.com, BBC.współ.Wielka Brytania, Ssllabs.com, Apple.com plus dużo więcej.
  • Nginx są: Netflix, Udemy.Com, Hulu, Pinterest, Cloudflare, WordPress.com, github, soundcloud i wiele innych.

Istnieje wiele zasobów opublikowanych już w Internecie dotyczącej porównania Apache I Nginx (Naprawdę mam na myśliApache vs nginx„Artykuły), z których wiele wyraźnie wyjaśnia szczegółowo, ich najlepsze cechy i operacje w różnych scenariuszach, w tym środki wydajności w testach porównawczych. Dlatego nie zostanie to tutaj adresowane.

Po prostu podzielę się swoimi doświadczeniami i przemyśleniami na temat całej debaty, wypróbowałem Apache I Nginx, Zarówno w środowiskach produkcyjnych opartych na wymaganiach dotyczących nowoczesnych aplikacji internetowych, w następnej sekcji.

Powody, dla których uważam Nginx praktycznie lepszy niż Apache

Poniżej są powody, dla których wolę serwer WWW Nginx niż Apache do nowoczesnej dostawy treści internetowych:

1. Nginx jest lekki

Nginx jest jednym z lekkich serwerów internetowych. Ma małe ślady na systemie w porównaniu do Apache, który implementuje szeroki zakres funkcjonalności niezbędnej do uruchomienia aplikacji.

Ponieważ Nginx łączy garść podstawowych funkcji, opiera się na dedykowanych serwerach WWW trzecie.E serwery specyficzne dla języka, takie jak węzeł.JS, Tomcat itp.

Dlatego jego użycie pamięci jest znacznie lepsze dla ograniczonych wdrożeń zasobów niż Apache.

2. Nginx jest przeznaczony do wysokiej współbieżności

W przeciwieństwie do architektury APACHES lub zorientowanej na proces (model procesu- połączenie lub model wątku), Nginx używa architektury skalowalnej, opartej na zdarzeniach (asynchronicznych). Wykorzystuje odpowiedzialny model procesu, który jest dostosowany do dostępnych zasobów sprzętowych.

Ma proces główny (który wykonuje uprzywilejowane operacje, takie jak konfiguracja odczytu i wiązanie z portów) i który tworzy kilka procesów pracowniczych i pomocniczych.

Procesy pracownicze mogą obsługiwać jednocześnie tysiące połączeń HTTP, czytać i zapisać treść na dysku oraz komunikować się z serwerami upstream. Procesy pomocnicze (menedżer pamięci podręcznej i ładowarka pamięci podręcznej) mogą zarządzać operacją buforowania treści na katastrofie.

To sprawia, że ​​jego operacje są skalowalne i powodują wysoką wydajność. To podejście projektowe sprawia, że ​​jest szybkie, korzystne dla nowoczesnych zastosowań. Ponadto moduły trzeciej części można wykorzystać do rozszerzenia natywnych funkcji w Nginx.

3. Nginx jest łatwy do skonfigurowania

Nginx ma prostą strukturę plików konfiguracyjnych, dzięki czemu jest bardzo łatwa do konfiguracji. Składa się z modułów kontrolowanych przez dyrektywy określone w pliku konfiguracyjnym. Ponadto dyrektywy są podzielone na dyrektywy blokowe i proste dyrektywy.

Dyrektywa blokowa jest zdefiniowana przez aparat ortodontyczny ( I ). Jeśli dyrektywa blokowa może mieć inne dyrektywy wewnątrz aparatów ortodontycznych, nazywa się to kontekstem, takim jak zdarzenia, HTTP, serwer i lokalizacja.

http Server  

Prosta dyrektywa składa się z nazwy i parametrów oddzielonych przestrzeniami i końcami półkolisem (;).

http server location/## To jest prosta dyrektywa o nazwie root root/var/www/hmtl/przykład.com/;  

Na przykład możesz dołączyć niestandardowe pliki konfiguracyjne za pomocą dyrektywy dołącz.

http Server  ##.conf; Dołącz/ścieżka/do/config/file/ssl.conf;  

Praktycznym przykładem było dla mnie sposób, w jaki udało mi się łatwo skonfigurować Nginx do uruchamiania wielu stron z różnymi wersjami PHP, co było trochę wyzwaniem z Apache.

4. Nginx to doskonały proxy frontend

Jedno z powszechnych zastosowań Nginx konfiguruje go jako serwer proxy, w tym przypadku otrzymuje żądania HTTP od klientów i przekazuje je na serwery serweryczne lub powyżej, które zostały wymienione powyżej, w różnych protokole. Możesz także zmodyfikować nagłówki żądań klienta, które są wysyłane na serwer proxied, i skonfigurować buforowanie odpowiedzi pochodzących z serwerów serwera.

Następnie otrzymuje odpowiedzi od serwerów serwerów i przekazuje je klientom. Muzy łatwiej jest skonfigurować jako serwer proxy w porównaniu z Apache, ponieważ wymagane moduły są w większości przypadków domyślnie włączone.

5. Nginx jest niezwykły do ​​obsługi treści statycznych

Treść statyczna lub pliki to zazwyczaj pliki przechowywane na dysku na komputerze serwerowym, na przykład pliki CSS, pliki JavaScripts lub obrazy. Rozważmy scenariusz, w którym używasz Nginx jako frontend dla NodeJS (serwer aplikacji).

Chociaż serwer Nodejs (w szczególności frameworki węzłów) ma wbudowane funkcje do statycznego obsługi plików, nie muszą wykonywać intensywnego przetwarzania, aby dostarczyć treści nienamiczne, dlatego jest praktycznie korzystne, aby skonfigurować serwer WWW, aby obsługiwać treść statyczną bezpośrednio, do której można było bezpośrednio podawać treść statyczną klienci.

Nginx może wykonywać znacznie lepszą pracę w obsłudze plików statycznych z określonego katalogu i może zapobiegać wymaganiom statycznych zasobów przed dławieniem procesów serwera w górę. To znacznie poprawia ogólną wydajność serwerów zaplecza.

6. Nginx jest wydajnym balansem obciążeniowym

Aby zrealizować wysoką wydajność i czas pracy dla nowoczesnych aplikacji internetowych, może wywoływać uruchamianie wielu instancji aplikacji na jednym lub rozproszonym serwerom HTTP. Może to z kolei wymagać konfigurowania równoważenia obciążenia w celu rozmieszczenia obciążenia między serwerami HTTP.

Obecnie równoważenie obciążenia stało się szeroko stosowanym podejściem do optymalizacji wykorzystania zasobów systemu operacyjnego, maksymalizacji elastyczności, zmniejszenia opóźnień, zwiększenia przepustowości, osiągnięcia redundancji i ustanowienia konfiguracji tolerancyjnej tolerancyjnej - w wielu instancjach aplikacji.

Nginx używa następujących metod równoważenia obciążenia:

  • Round-Robin (Metoda domyślna)- żądania na serwerach upstream są dystrybuowane w sposób okrągłe (w kolejności listy serwerów w puli upstream).
  • najmniej połączone - Tutaj następne żądanie jest przesyłane przez serwer z najmniejszą liczbą aktywnych połączeń.
  • IP-hash - Tutaj do ustalenia, jaki serwer powinien wybrać na następne żądanie (na podstawie adresu IP klienta).
  • Ogólny skrót - Zgodnie z tą metodą administrator systemu określa skrót (lub klucz) z podanym tekstem, zmiennymi żądania lub środowiska wykonawczego lub ich kombinacją. Na przykład kluczem może być źródłowy adres IP i Port lub URI. Nginx następnie rozkłada obciążenie między serwerami powyżej, generując skrót dla bieżącego żądania i umieszczając go na serwerach powyżej.
  • Najmniej czasu (Nginx Plus) - Przypisuje następne żądanie do serwera Upstream z najmniejszą liczbą bieżących połączeń, ale sprzyja serwerom o najniższych średnich czasach reakcji.

7. Nginx jest wysoce skalowalny

Ponadto, Nginx jest wysoce skalowalne i nowoczesne aplikacje internetowe, zwłaszcza popyt na aplikacje korporacyjne na technologię, która zapewnia wysoką wydajność i skalowalność.

Jedna firma korzysta z niesamowitych funkcji skalowalności Nginx Cloudflare, Według stosunkowo skromnej infrastruktury udało się skalować swoje aplikacje internetowe w celu obsługi ponad 15 miliardów Matthew Prince, współzałożyciel i dyrektor generalny Cloudfare.

Aby uzyskać bardziej kompleksowe wyjaśnienie, sprawdź ten artykuł na blogu Nginx: Nginx vs. Apache: Nasz pogląd na dekadę pytanie.

Wniosek

Obydwa Apache I Nginx nie mogą zostać zastąpione przez siebie nawzajem, mają swoje silne i słabe punkty. Jednakże, Nginx oferuje potężną, elastyczną, skalowalną i bezpieczną technologię do niezawodnego i wydajnego zasilania nowoczesnych stron internetowych i aplikacji internetowych. Jakie jest twoje ujęcie? Daj nam znać za pośrednictwem poniższego formularza opinii.