NGINX to serwer HTTP o otwartym kodzie źródłowym, z którego chętnie korzystają programiści, tworząc własne środowiska hostingowe. Charakteryzuje się lekką i wydajną architekturą oraz potrafi wytrzymać silne obciążenia przy jednocześnie niskiej zajętość zasobów. Jaka działa i kiedy z niego korzystać?

 

NGINX – najpopularniejszy konkurent serwera Apache

NGINX (inaczej engine x) to serwer HTTP udostępniony w 2004 roku, który pozwala na niewielkie wykorzystanie zasobów oraz wysoką skalowalność nawet na minimalnym sprzęcie. Może także być używany jako load balancer, pamięć podręczna HTTP, proxy dla poczty e-mail czy reverse proxy (odwrotny serwer pośredniczący) dla innego serwera. Pozwala na zarządzanie gniazdami i jednoczesną obsługę aż 10 tysięcy połączeń do serwera. Serwer Apache do każdego nowego zapytania tworzy nowy wątek, co stwarza problemy w przypadku skierowania do niego wielu żądań jednocześnie. Natomiast NGINX obsługuje wiele zapytań w jednym wątku, wykorzystując asynchronicznie sterujący zdarzeniami nieblokujący algorytm do obsługi połączeń. Dlatego też to właśnie on stanowi poważnego konkurenta dla Apache — oba serwery odpowiadają za obsługę ponad 50% ruchu w Internecie. Z NGINX korzystają teki marki, jak WordPpress.com, Pinterest i Netflix, Wikipedia, Instagram czy GitHub. 

Serwery, NGINX

Zalety NGINX

NGINX to niezwykle wydajny i bardzo skalowalny serwer, który doskonale radzi sobie z dużym natężeniem ruchu, dzięki czemu może działać jako system równoważenia obciążeń. Pracuje w modelu master-worker, gdzie jeden główny proces deleguje zadania do procesów roboczych. W przeciwieństwie do Apache pozwala obsłużyć dużą liczbę jednoczesnych połączeń poprzez utrzymanie połączeń otwartych lub też wykorzystując programowanie sterowane zdarzeniami, w którym żądania są pobierane przez procesy robocze. NGINX niezwykle wydajnie obsługuje zawartość statyczną, którą dostarcza z pamięci RAM, jeśli ta była już wcześniej buforowana lub też z pamięci masowej SDD wykrzykującej pamięć flash, która jest o wiele szybsza niż dysk twardy HDD. Dodatkowo serwer ten posiada własny system buforowania FastCGI, którego używa PHP. Choć nie ma zdolności do przetwarzania zawartości dynamicznej to właśnie ten fakt stanowi jego zaletę – interpreter nie jest osadzony w procesie roboczym, a zatem narzut połączeń będzie widoczny tylko w przypadku przetwarzania zawartości dynamicznej. 

Powiązane artykuły

Zobacz wszystkie artykuły powiązane z #Back-end