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 .
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 .
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.
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.
Proces główny kontroluje proces lub procesy serwera. Pozwala to na zmiany konfiguracji lub aktualizację pliku wykonywalnego serwera bez przerywania usługi HTTP.
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 .
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 ).
NGINX był mało znany, z wyjątkiem Rosji , zanim Aleksandar Lazic rozpoczął tłumaczenie na język angielski w 2006 roku.