nginx
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.
Logo programu | |
Autor | Nginx, Inc. |
---|---|
Aktualna wersja stabilna | 1.27.2 (2 października 2024) [±] |
Aktualna wersja testowa | 1.27.1 (14 sierpnia 2024) [±] |
System operacyjny | FreeBSD, GNU/Linux, OpenBSD, Windows, Solaris |
Rodzaj | serwer WWW |
Licencja | 2-klauzulowa licencja BSD |
Strona internetowa |
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
edytujOryginalnie stworzony na potrzeby rosyjskiej wyszukiwarki i portalu Rambler.
- 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[1]
- Październik 2011 – powstanie firmy Nginx, Inc. oferującej liczne opcje wsparcia[2] oraz konsultacji dla wielkoskalowych implementacji
Wykorzystanie w Internecie
edytujWedł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[3].
W czerwcu 2018 Nginx był wykorzystywany przez 18,45% wszystkich zarejestrowanych polskich domen[4].
Statystyki wykorzystania serwerów WWW (dane z kwietnia 2020 według serwisu Netcraft)[5]:
nginx | 459 886 788 | 36,91% |
Apache | 308 143 708 | 24,73% |
Microsoft | 160 121 865 | 12,85% |
42 648 748 | 3,42% |
Architektura
edytuj- 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
edytuj- 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[6]
- 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[7], który zastępuje nieaktualizowany od 2008 r. oddzielny moduł MP4 Streaming Lite
- wbudowany interpreter języka perl (eksperymentalnie)
Niekompatybilność
edytujnginx 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[8][9]
- brak rozszerzenia Delta-V do protokołu WebDAV[10], koniecznego do implementacji dostępu do repozytoriów Subversion (realizowanego dla serwera Apache przez moduł mod_svn)
Przypisy
edytuj- ↑ nginx was imported to OpenBSD src tree. openbsd.org. [zarchiwizowane z tego adresu (2013-04-30)].
- ↑ NGINX Commercial Support [online], nginx.com, 27 stycznia 2013 [zarchiwizowane z adresu 2013-01-27] (ang.).
- ↑ June 2016 Web Server Survey – Netcraft.
- ↑ Statystyki polskiego Internetu amudom.pl [online], www.amudom.pl [dostęp 2018-07-16] [zarchiwizowane z adresu 2018-07-16] (pol.).
- ↑ May 2020 Web Server Survey [online], Netcraft News, 26 kwietnia 2020 [dostęp 2020-05-29] (ang.).
- ↑ NginxCommandLine – nginx wiki.
- ↑ MP4 Streaming Module.
- ↑ NginxSimpleCGI – nginx wiki. [dostęp 2009-01-18]. [zarchiwizowane z tego adresu (2009-02-27)]. (ang.).
- ↑ SimpleCGI. nginx.org. [dostęp 2015-02-08]. [zarchiwizowane z tego adresu (2015-02-08)]. (ang.).
- ↑ NginxHttpDavModule – nginx wiki.
Linki zewnętrzne
edytuj- nginx news (ang.)
- Dokumentacja (wiki) (ang.)
- Oryginalna strona serwera (ros.)