NGINX

NGINX

Informacja
Twórca Igor Sysoev i Maxim Konovalov ( d )
Opracowany przez NGINX, Inc. ( en ) i Igor Sysoev
Pierwsza wersja 4 października 2004 r.
Ostatnia wersja 1.21.0 (25 maja 2021)
Wersja zaawansowana 1.19.1 (7 lipca 2020 r.)
1.19.2 (11 sierpnia 2020 r.)
1.19.0 (26 maja 2020)
1.19.3 (29 września 2020 r.)
1.19.4 (28 października 2020 r.)
1.19.5 (24 listopada 2020 r.)
1.19.6 (15 grudnia 2020)
1.19.7 (16 lutego 2021)
1.19.8 (9 marca 2021)
1.19.9 (30 marca 2021)
Kaucja hg.nginx.org/nginx i github.com/nginx/nginx
Napisane w VS
System operacyjny Wpisz Unix i Microsoft Windows
Czytaj formaty Certyfikat zakodowany w PEM ( d ) , klucz prywatny RSA zakodowany w PEM ( d ) i dostępne strony Nginx ( d )
Rodzaj Agent serwera WWW
Polityka dystrybucji darmowe oprogramowanie
Licencja BSD 2 klauzule ( d )
Stronie internetowej nginx.org

NGINX open source lub NGINX (wymawiane [ˌɛndʒɪnɛks], a także pisane jako Nginx lub nginx ) to darmowe oprogramowanie dla serwera WWW (lub HTTP ) i odwrotnego proxy napisane przez Igora Sysoeva , którego rozwój rozpoczął się w 2002 roku na potrzeby „rosyjskiej witryny o bardzo dużym natężeniu ruchu ( Rambler ). Dokumentacja jest dostępna w kilku językach. Minęło od tego czasukwiecień 2019, najczęściej używany serwer WWW na świecie według Netcraft lub drugi najczęściej używany serwer według W3techs.

Firma NGINX Inc została przejęta przez F5 Networks w dniu11 marca 2019 r., za 670 milionów dolarów.

Jego źródła są dostępne na licencji typu BSD .

Cechy szczególne

Serwer asynchroniczny

NGINX jest systemem asynchronicznym w przeciwieństwie do serwerów synchronicznych, w których każde żądanie jest obsługiwane przez dedykowany proces . Zamiast wykorzystywać architekturę równoległą i multipleksowanie zadań z podziałem czasu przez system operacyjny, NGINX wykorzystuje zmiany stanu do zarządzania wieloma połączeniami jednocześnie; przetwarzanie każdego żądania jest podzielone na wiele mini-zadań, dzięki czemu możliwe jest uzyskanie wydajnego multipleksowania między połączeniami. Aby skorzystać z komputerów wieloprocesorowych, można uruchomić kilka procesów. Taki wybór architektury prowadzi do bardzo wysokiej wydajności, a także znacznie mniejszego obciążenia i zużycia pamięci niż konwencjonalne serwery HTTP, takie jak Apache .

Modułowość

NGINX jest bardzo modułowy: minimalne jądro i wiele modułów uzupełniających podstawowe funkcje. Każdy moduł może działać jako filtr na wejściu, wyjściu lub zawartości pośredniej (proxy) poprzez liczne wywołania zwrotne . W ten sposób, na przykład, zawartość dynamiczna może być kompresowana w locie przez moduł „  gzip  ” przed wysłaniem.

Moduły te są połączone z serwerem podczas kompilacji. NGINX nie obsługuje udostępnionych bibliotek dynamicznych. Tengine , widelec NGINX w Taobao dodał tę funkcję, która nie została przeniesiona do NGINX.

Optymalizacje

Jądro opiera się na minimalnych, ale optymalnych strukturach danych, których celem jest zmniejszenie liczby wywołań systemowych, zwłaszcza wszystkiego, co ma związek z alokacją pamięci. W celu maksymalnego wykorzystania możliwości systemu operacyjnego można użyć różnych mechanizmów sygnalizacyjnych (na przykład: epoll w systemie Linux i kqueue w BSD ). Architektura asynchroniczna odciąża harmonogram systemu operacyjnego i promuje korzystanie z pamięci podręcznych lub procesorów.

Różnorodny

Proces główny kontroluje proces lub procesy serwera. Pozwala to na zmiany konfiguracji lub aktualizację pliku wykonywalnego serwera bez przerywania usługi HTTP.

Obsługiwane platformy

NGINX działa na systemach operacyjnych GNU / Linux , BSD , Mac OS X i Solaris  ; Od wersji zaawansowanej 0.7.52 NGINX jest również dostępny dla systemu Microsoft Windows .

Zastosowania

Poza tym, że jest serwerem HTTP, NGINX może być skonfigurowany jako odwrotny serwer proxy (w języku angielskim  : odwrotny proxy ) serwer proxy WWW i poczty e-mail ( IMAP / POP3 ). Najczęstszym zastosowaniem NGINX jest skonfigurowanie go jako klasycznego serwera WWW do obsługi plików statycznych oraz jako proxy dla żądań dynamicznych, zwykle kierowanych za pomocą interfejsu FastCGI do jednego lub więcej serwerów aplikacji z mechanizmem równoważenia obciążenia .

NGINX jest również w stanie przesyłać strumieniowo, na tej samej zasadzie, co lighttpd za pomocą mod_flv_streaming , zawartość wideo w trybie strumieniowym ( strumieniowanie) do odtwarzacza Flash bez konieczności korzystania z serwera Flash Media Server. W tym celu ma opcjonalny moduł http_glv_module do strumieniowego przesyłania plików wideo flv i kilka modułów strumieniowych, które mogą przesyłać wideo zakodowane w H.264 . Pozwala również na nadawanie mp4 dzięki opcjonalnemu modułowi http_mp4_module .

Jest również szeroko stosowany w produkcji do obsługi aplikacji Ruby on Rails dzięki modułowi Phusion Passenger . Większość witryn Ruby on Rails o dużym natężeniu ruchu korzysta z NGINX (np. basecamp lub LinuxFr.org ).

Popularność

NGINX był mało znany, z wyjątkiem Rosji , zanim Aleksandar Lazic rozpoczął tłumaczenie na język angielski w 2006 roku.

Uwagi i referencje

  1. "  http://nginx.org/ru/CHANGES.ru  "
  2. Wydanie 1.21.0  " ,25 maja 2021(dostęp 21 czerwca 2021 )
  3. „  https://nginx.org/en/ZMIANY  ” (dostęp 8 lipca 2020 r. )
  4. Wersja 1.19.1  " ,7 lipca 2020 r.(dostęp 22 sierpnia 2020 )
  5. „  https://nginx.org/en/ZMIANY  ” (dostęp 16 sierpnia 2020 r. )
  6. Wersja 1.19.2  " ,11 sierpnia 2020 r.(dostęp 22 sierpnia 2020 )
  7. Wersja 1.19.0  " ,26 maja 2020(dostęp 22 sierpnia 2020 )
  8. Wersja 1.19.3  " ,29 września 2020 r.(dostęp 21 października 2020 r. )
  9. Wydanie 1.19.4  " ,27 września 2020 r.(dostęp 10 listopada 2020 r. )
  10. „  Wydanie 1.19.5  ” ,24 listopada 2020 r.(dostęp 20 grudnia 2020 r. )
  11. Wydanie 1.19.6  " ,15 grudnia 2020(dostęp 20 grudnia 2020 r. )
  12. Wersja 1.19.7  " ,16 lutego 2021(dostęp 18 lutego 2021 )
  13. release-1.19.8  " (dostęp 11 marca 2021 )
  14. release-1.19.9  " (dostęp 9 kwietnia 2021 )
  15. (en-US) „  NGINX | Wysokowydajny system równoważenia obciążenia, serwer sieci Web i zwrotny serwer proxy  ” , na NGINX (dostęp 28 września 2018 r. )
  16. (en) „  Kwiecień 2019 Web Server Survey  ” , na Netcraft ,22 kwietnia 2019
  17. „  Statystyki użytkowania i udział w rynku serwerów internetowych, marzec 2020  ” , na w3techs.com (dostęp 4 marca 2020 r. )
  18. (w) „  Dynamic Module Loading Support (DSO)  ” , tengine.taobao.org (dostęp 20 sierpnia 2014 )
  19. Architektura LinuxFr.org , obowiązująca od lutego 2011
  20. (w) „  Oprogramowanie serwera WWW i złośliwe oprogramowanie  ” w witrynie Googleonlinesecurity.blogspot.com ,5 czerwca 2007 r.
  21. (w) "  Ankieta dotycząca serwera WWW z grudnia 2008 r.  " w serwisie Netcraft Net
  22. (w) „  Marzec 2009 Web Server Survey  ” na Netcraft ,15 marca 2009
  23. (w) „  Listopad 2010 Web Server Survey  ” na Netcraft ,5 listopada 2010
  24. (w) „  Ankieta dotycząca serwerów WWW z lipca 2011 r.  ” na Netcraft ,8 lipca 2011
  25. (w) „  Najwyżej oceniany rosyjski serwer sieciowy Nginx pozyskuje 3 miliony dolarów z funduszy rosyjskich i międzynarodowych  ” , na East-West Digital News ,13 października 2011(dostęp 29 września 2019 )
  26. (w) „  Styczeń 2012 Web Server Survey  ” na Netcraft ,3 czerwca 2012
  27. (w) „  Kwiecień 2013 Web Server Survey  ” na Netcraft ,2 kwietnia 2013
  28. (w) „  Maj 2015 Web Server Survey  ” na Netcraft ,19 maja 2015
  29. (w) „  Kwiecień 2016 Ankieta dotycząca serwerów WWW  ” na Netcraft ,21 kwietnia 2016
  30. (w) „  Grudzień 2018 Web Server Survey  ” na Netcraft ,17 grudnia 2018 r.

Zobacz również

Linki zewnętrzne