nginx

nginx
Logo nginx
Logo programu
AutorNginx, Inc.
Aktualna wersja stabilna1.20.0 / 21 kwietnia 2021; ponad rok temu[1]
Aktualna wersja testowa1.19.8 / 9 marca 2021; ponad rok temu[1]
System operacyjnyFreeBSD, GNU/Linux, OpenBSD, Windows, Solaris
Rodzajserwer WWW
Licencja2-klauzulowa licencja BSD
Strona internetowa

nginx (wymawiany jako engine x) – serwer WWW (HTTP) oraz serwer proxy dla HTTP i IMAP/POP3 stworzony przez Igora Sysojewa, a rozwijany i wspierany przez założoną przez niego firmę, Nginx, Inc.

Zaprojektowany z myślą o wysokiej dostępności i silnie obciążonych serwisach (nacisk na skalowalność i niską zajętość zasobów). Wydawany jest na licencji BSD.

Historia

Oryginalnie stworzony na potrzeby rosyjskiej wyszukiwarki i portalu Rambler.ru.

  • 4 października 2004 – pierwsza wersja udostępniona publicznie (0.1.0)
  • 23 września 2005 – wersja 0.2.0
  • lipiec 2007 – rozdzielenie wersji stabilnej (0.5 i rozwojowej 0.6)
  • 19 maja 2008 – oddzielenie gałęzi rozwojowej 0.7 (0.6 uzyskuje status stabilnej)
  • 7 lipca 2008 – ostatnie wydanie z gałęzi 0.5 (0.5.37)
  • 2 czerwca 2009 – nowa gałąź rozwojowa (0.8.0), gałąź 0.7 zostaje oznaczona jako stabilna, a gałąź 0.6 uzyskuje status „legacy” (ostatnie wydanie 0.6.39)
  • 14 września 2009 – ze względu na lukę w bezpieczeństwie wydane zostały poprawki do wszystkich czterech gałęzi (0.8.15, 0.7.62, 0.6.39, i 0.5.38)
  • 27 września 2010 – nowa gałąź rozwojowa (0.9.0), gałąź 0.8 zostaje oznaczona jako stabilna, a gałąź 0.7 uzyskuje status „legacy”
  • 12 kwietnia 2011 – zakończenie cyklu rozwojowego 0.9.x poprzez wydanie wersji stabilnej 1.0.0 w 50. rocznicę startu radzieckiego programu kosmicznego Wostok 1
  • 23 września 2011 – nginx został włączony do kodu źródłowego OpenBSD[2]
  • Październik 2011 – powstanie firmy Nginx, Inc. oferującej liczne opcje wsparcia[3] oraz konsultacji dla wielkoskalowych implementacji

Wykorzystanie w Internecie

Według raportu Netcraft z kwietnia 2020 serwer nginx wykorzystywany jest przez ponad 459 mln domen, co klasyfikuje go na pierwszym miejscu wśród serwerów WWW[4].

W czerwcu 2018 Nginx był wykorzystywany przez 18,45% wszystkich zarejestrowanych polskich domen[5].

Statystyki wykorzystania serwerów WWW (dane z kwietnia 2020 według serwisu Netcraft):[6]

nginx459 886 78836,91%
Apache308 143 70824,73%
Microsoft160 121 86512,85%
Google42 648 7483,42%

Architektura

  • jeden proces główny i wiele procesów roboczych (pracujących w kontekście użytkownika nieuprzywilejowanego)
  • nowoczesna obsługa zdarzeń (kqueue na FreeBSD, epoll na GNU/Linuksie, /dev/poll i „event ports” na Solarisie)
  • obsługa zaawansowanych funkcji mechanizmu kqueue na FreeBSD (EV_CLEAR, EV_DISABLE, NOTE_LOWAT, EV_EOF)
  • obsługa funkcji sendfile
  • obsługa opóźnionego przyjmowania połączeń (accept-filter na FreeBSD i TCP_DEFER_ACCEPT dla GNU/Linuksa)
  • obsługa asynchronicznego wejścia-wyjścia (AIO) na FreeBSD i GNU/Linuksie
  • minimalizacja operacji kopiowania danych
  • architektura modułowa

Cechy serwera

  • obsługa statycznych plików
  • pliki indeksów
  • automatyczne indeksowanie
  • odwrócone proxy
  • równoważenie obciążenia z obsługą braku dostępności serwerów
  • obsługa FastCGI, WSGI i SCGI
  • obsługa TLS (dawniej SSL) i SNI (Server Name Indication)
  • obsługa serwerów wirtualnych
  • obsługa protokołu SPDY
  • możliwość przeładowania konfiguracji serwera bez przerywania pracy[7]
  • możliwość uaktualnienia wersji w locie (bez przerywania obsługi podłączonych wcześniej klientów)
  • wbudowany serwer proxy dla protokołów SMTP, POP3 i IMAP
  • dodatkowe metody protokołu HTTP (PUT, DELETE, MKCOL, COPY, MOVE)
  • obsługa strumieni FLV
  • od wersji 1.1.3 obsługa strumieni MP4 za pomocą MP4 Streaming Module[8], który zastępuje nieaktualizowany od 2008 r. oddzielny moduł MP4 Streaming Lite
  • wbudowany interpreter języka perl (eksperymentalnie)

Niekompatybilność

nginx nie obsługuje kilku mechanizmów udostępnianych przez inne serwery (takie jak Apache httpd czy lighttpd):

  • lokalne pliki konfiguracyjne .htaccess
  • uruchamianie prostych skryptów CGI[9][10]
  • brak rozszerzenia Delta-V do protokołu WebDAV[11], koniecznego do implementacji dostępu do repozytoriów Subversion (realizowanego dla serwera Apache przez moduł mod_svn)

Przypisy

  1. a b nginx news (ang.). [dostęp 2019-12-17].
  2. nginx was imported to OpenBSD src tree. openbsd.org. [zarchiwizowane z tego adresu (2013-04-30)]..
  3. Nginx, Inc. Support.
  4. June 2016 Web Server Survey – Netcraft.
  5. Statystyki polskiego Internetu amudom.pl, www.amudom.pl [dostęp 2018-07-16] [zarchiwizowane z adresu 2018-07-16] (pol.).
  6. May 2020 Web Server Survey, Netcraft News, 26 kwietnia 2020 [dostęp 2020-05-29] (ang.).
  7. NginxCommandLine – nginx wiki.
  8. MP4 Streaming Module.
  9. NginxSimpleCGI – nginx wiki (ang.). [dostęp 2009-01-18]. [zarchiwizowane z tego adresu (2009-02-27)].
  10. SimpleCGI (ang.). nginx.org. [dostęp 2015-02-08]. [zarchiwizowane z tego adresu (2015-02-08)].
  11. NginxHttpDavModule – nginx wiki.

Linki zewnętrzne

Media użyte na tej stronie

Nginx.png
Autor: NGINX INC, Licencja: CC BY-SA 4.0
http://nginx.org - Logo