Wybór między Apache a NGINX dla potrzeb hostingu

Aby rozpocząć pracę nad zupełnie nowym projektem internetowym, naprawdę potrzebujesz tylko dwóch rzeczy: dostawcy hostingu i serwera HTTP (HyperText Transfer Protocol). Dostawcy usług w chmurze, tacy jak Amazon Web Services i Microsoft Azure, oferują szereg opcji platformy, aby spełnić wymagania dotyczące wielkości i szybkości witryny. Po zarejestrowaniu się w hoście w chmurze możesz wybrać serwer HTTP do uruchomienia na zwirtualizowanym sprzęcie.


Serwer HTTP odpowiada za przyjmowanie żądań internetowych od odwiedzających witrynę, a następnie odpowiadanie w przeglądarce odpowiednią treścią. Na przykład podstawowe żądanie internetowe może wymagać treści tekstu HTML i szeregu połączonych obrazów. Serwer HTTP dostarczy odpowiedź sieciową, którą przeglądarki takie jak Google Chrome lub Mozilla Firefox mogą zrozumieć i wyświetlić.

Jeśli chodzi o serwery HTTP, dwa rozwiązania dominują w dużej części obecnego krajobrazu: Apace i NGINX (wymawiane jak „Engine X”). Czytaj dalej, aby poznać podstawy obu tych metod oraz ich porównanie pod względem architektury, wydajności i innych kategorii.

Podstawy Apache

Serwerowe rozwiązanie Apache istnieje już od połowy lat 90. Biorąc pod uwagę długowieczność i stabilność oprogramowania, pozostaje jedną z najpopularniejszych opcji hostingu stron internetowych. Jest to kluczowa część stosu programistycznego LAMP, który jest używany przez zespoły każdej wielkości do wdrażania dynamicznych aplikacji w Internecie. Pozostałe elementy stosu LAMP to Linux (system operacyjny), MySQL (baza danych) i PHP (skrypt po stronie serwera).

Apache jest oferowany jako darmowy pakiet oprogramowania typu open source. Jest zarządzany i rozwijany przez Apache Software Foundation. Kiedy w latach 90. pojawiła się na świecie sieć WWW, Apache był domyślnym rozwiązaniem serwerowym dla większości stron internetowych. Został zaprojektowany z myślą o prostocie i chociaż pozwala na elastyczność i skalowalność, Apache zyskał popularność w czasach, gdy poziomy ruchu internetowego były znacznie niższe niż obecnie.

Podstawy NGINX

Serwer WWW NGINX został wydany po raz pierwszy w 2002 roku. Został stworzony przez jednego administratora systemów w Rosji i dwa lata później stał się częścią społeczności open source. Projekt NGINX koncentruje się w szczególności na szybkości i wydajności, dwóch obszarach, w których niektórzy uważają, że brakuje Apache. W rzeczywistości projekt NGINX powstał pierwotnie z powodu publicznego wyzwania C10K, które poprosiło programistów o zaprojektowanie rozwiązania HTTP, które mogłoby obsługiwać 10 000 jednoczesnych użytkowników na stałym poziomie wydajności.

NGINX zyskał na popularności w ciągu ostatniej dekady, szczególnie wśród startupów, które muszą szybko rozwijać swój sprzęt. Jednak ogólnie uważa się, że NGINX jest trudniejszy do skonfigurowania i integracji niż Apache.

Zagadnienia dotyczące architektury

Pakiet oprogramowania Apache zawiera zestaw modułów wieloprocesorowych (znanych jako MPM), które pozwalają administratorowi serwera określić, w jaki sposób jego rozwiązanie HTTP powinno obsługiwać żądania. Ten typ architektury pozwala na dużą elastyczność i dostosowanie.

Najbardziej podstawowym modułem Apache jest mpm_prefork. Działa w oparciu o logikę jednowątkową, w której każdy proces serwera obsługuje jedno żądanie sieciowe na raz. Jest to zalecany moduł do projektów internetowych opartych na języku skryptowym PHP. Kolejnym modułem Apache jest mpm_worker, który obsługuje wiele wątków jednocześnie. Pomoże to Apache w zwiększeniu wydajności i skalowalności. Ostatni podstawowy moduł Apache, mpm_event, działa w podobny sposób jak mpm_worker, ale dodaje lepszą obsługę utrzymywania połączeń, które są wymagane przez wiele nowoczesnych aplikacji internetowych.

NGINX zdecydowanie odróżnia się od Apache pod względem architektury. Opiera się na koncepcji działania sterowanego zdarzeniami, a nie przy użyciu procesów lub wątków. Oznacza to, że pojedynczy pracownik NGINX może obsługiwać tysiące połączeń HTTP jednocześnie.

NGINX opiera się na systemie pętli, który umożliwia pracownikom szybkie odbieranie nowych żądań za każdym razem, gdy zdarzenie jest wyzwalane. Zdarzenia są przetwarzane asynchronicznie, co oznacza, że ​​nie muszą czekać na kolejne zdarzenia przypisywane sekwencyjnie.

Obsługa treści

Obecnie zawartość sieci można podzielić na dwie kategorie: statyczną lub dynamiczną. Treść statyczna obejmuje wszystko na stronie internetowej, które pozostaje spójne bez względu na sposób korzystania z witryny. Na przykład logo firmy u góry strony internetowej jest fragmentem treści statycznej. Z drugiej strony zawartość dynamiczna jest kontrolowana przez języki skryptowe, takie jak PHP, i będzie się zmieniać w zależności od sesji użytkownika lub innych zmiennych. Witryny e-mailowe, witryny bankowe i sieci społecznościowe polegają na treści dynamicznej, która pokazuje użytkownikom ich indywidualne dane.

Apache może obsługiwać zawartość statyczną tylko w jednym wątku, co czyni NGINX bardziej atrakcyjnym rozwiązaniem dla projektów internetowych, które wymagają dużej ilości zawartości statycznej dostarczanej szybko. Jednak Apache oferuje pewne korzyści, jeśli chodzi o zawartość dynamiczną. Łatwo integruje się z PHP i może osadzić procesor skryptowy bezpośrednio w procesie roboczym HTTP. Podstawowy pakiet oprogramowania NGINX nie obsługuje dynamicznego dostarczania treści, dlatego aby go obsługiwać, musisz dodać zewnętrzny procesor do stosu oprogramowania..

Porównania wydajności

Zewnętrzni odwiedzający twoją witrynę nie będą obchodzić, jakiego rodzaju serwera HTTP używasz w backend. Zajmują się jedynie szybkim i niezawodnym dostępem do treści. Z tego powodu wydajność powinna być kluczową miarą, którą należy wziąć pod uwagę, oceniając zarówno Apache, jak i NGINX jako opcje hostingu.

Dzięki architekturze sterowanej zdarzeniami NGINX jest ogólnie uważany za najszybsze rozwiązanie HTTP. Działa przy minimalnych zasobach, nawet gdy ruch internetowy rośnie z czasem. Powoduje to niskie zużycie pamięci i procesora, podczas gdy Apache może wymagać większego wykorzystania sprzętu w okresach zwiększonego obciążenia.

Łatwość wdrożenia

Zainstalowany na serwerze WWW jako część oprogramowania LAMP, host Apache HTTP jest niezwykle prosty w konfiguracji i uruchomieniu. Większość administratorów w ogóle nie będzie musiała modyfikować ustawień modułu przetwarzania wielokrotnego. Większość dostosowań Apache nastąpi na poziomie katalogu w tak zwanych plikach .htaccess.

Te małe elementy tekstowe umożliwiają pisanie reguł i wskazówek dotyczących tego, jak serwer HTTP powinien obsługiwać określone typy żądań. Na przykład możesz włączyć przepisywanie adresów URL, aby określony adres internetowy w domenie ładował zasoby z innej lokalizacji. Jest to często używane w serwisach społecznościowych, gdzie „/ nazwa użytkownika” pojawia się na końcu adresu URL.

NGINX nie obsługuje plików .htaccess ani innych konfiguracji na poziomie katalogu. To sprawia, że ​​przetwarzanie żądań jest szybsze i bezpieczniejsze, ale nadal ogranicza kontrolę, którą ma administrator systemu.

Kompatybilność i wsparcie

Serwery HTTP są zwykle uruchamiane w systemach operacyjnych UNIX, zwłaszcza na platformach Linux typu open source. Jest tak ze względu na szybkość, ponieważ UNIX jest uważany za najbardziej wydajny dostępny system operacyjny. Zarówno Apache, jak i NGINX można zainstalować w popularnych dystrybucjach Linuksa, takich jak Ubuntu lub BSD.

Apache oferuje również pełną obsługę systemu operacyjnego Microsoft Windows Server. NGINX można również skonfigurować do działania w systemie Windows, ale ogólnie uważa się go za mniej stabilny. Jeśli Twoja organizacja korzysta wyłącznie z systemu Windows na swoich serwerach WWW, logicznym wyborem będzie Apache.

Apache ma solidny portal dokumentacji online z uwagami do wydania, podręcznikami użytkownika, podręcznikami użytkownika i samouczkami, które pomogą Ci zainstalować Apache w środowisku chmurowym i zacząć używać go do aplikacji internetowej. NGINX oferuje podobny typ repozytorium dokumentacji, który obejmuje podstawową konfigurację, a także bardziej szczegółowy przewodnik programowania.

Podsumowanie

Apache i NGINX są bardzo popularnymi rozwiązaniami serwerowymi HTTP we współczesnym świecie przetwarzania w chmurze. Większość najlepszych firm hostingowych w Kanadzie korzysta z Apache i NGINX.

Wstawienie jednego z nich do stosu programistycznego jest rozsądnym wyborem, ponieważ zapewni stabilną wydajność i niezawodność.

Jeśli szybkość jest Twoim najwyższym priorytetem, a Twoja witryna będzie hostować dużą ilość treści statycznych, wtedy NGINX może być najlepszą opcją. Staje się również preferowanym wyborem wśród zespołów programistycznych, które budują architekturę mikrousług z wieloma podsystemami, które współdziałają ze sobą. Z drugiej strony, mali programiści lub początkujący mogą lepiej trzymać się Apache, ponieważ łatwiej jest go skonfigurować i jest wstępnie skonfigurowany z stosami oprogramowania innych firm, takimi jak LAMP.

Należy pamiętać, że niekoniecznie musisz wybierać między Apache a NGINX i zapomnieć o drugiej. W rzeczywistości oba rozwiązania są bardzo często używane w tandemie, aby zapewnić najlepszą możliwą obsługę hostingu. Po skonfigurowaniu NGINX jako początkowego serwera proxy, żądania mogą być przetwarzane szybko i przesyłane do pracownika Apache po stronie aplikacji. Stamtąd Apache można zintegrować z PHP lub innym językiem skryptowym, aby przygotować odpowiedź internetową i zapętlić ją z powrotem do warstwy NGINX.

Dokonaj badań przy wyborze rozwiązania serwera HTTP. Wybrany system stanie się częścią szkieletu witryny lub aplikacji i będzie miał decydujące znaczenie dla codziennych doświadczeń użytkowników.

Może Ci się spodobać:

  • Najlepszy hosting
  • Najlepszy kreator stron internetowych

Referencje i zdjęcia:

  • Nginx.com
  • ESDS.co.in
  • TutorialsPoint.com
  • NTU.edu.sg
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map