Nginx
Nginx (anglická výslovnost [ˈendžinex]) je softwarový webový server s load managment a reverzní proxy s otevřeným zdrojovým kódem. Pracuje s protokoly HTTP (i HTTPS), SMTP, POP3, IMAP a SSL. Zaměřuje se především na vysoký výkon a nízké nároky na paměť. Nginx je dostupný na Unixu, Linuxu a dalších Unix-like systémech pod BSD; existují varianty pro Solaris, macOS i MS Windows.
Vývojář | Nginx, Inc. |
---|---|
První vydání | 0.1.0 / 4. října 2004[1] |
Aktuální verze | 1.21.6 (25. ledna 2022) |
Operační systém | multiplatformní[2][3] |
Vyvíjeno v | C[4] |
Typ softwaru | webový server, reverzní/mail/proxy server |
Licence | 2-bodová BSD[5] |
Web | nginx.org |
Některá data mohou pocházet z datové položky. |
Historie
Na jaře 2001 byl vyvinut modul mod_accel do Apache [əˈpæči] jako náhradu staršího mod_proxy. Protože byl nespokojen s funkčností a škálovatelností Apache, rozhodl se Igor Sysoev vyvinout Nginx. Vývoj započal v roce 2002 a na podzim roku 2004 vyšla první oficiální verze. Cílem bylo vyvinout řešení, které bude bez problému schopné obsloužit 10 000 požadavků současně s minimálními nároky na operační paměť, možnost proxy, možnost flexibilní konfigurace a bude obsahovat cache. Nginx je naprogramován a dále vyvíjen v programovacím jazyce C. Roku 2011 byla založena stejnojmenná společnost zajišťující vývoj a podporu.[6]
Funkce
Základním cílem je rychlá distribuce statického obsahu a možnost rozložení zátěže na další servery dle nastavené priority. Systém dále umožňuje definovat záložní server, na který Nginx požadavek předá, pokud primární server neodpoví do stanoveného limitu. Příchozí požadavky Nginx asynchronně zpracovává a vyřizuje (na rozdíl třeba od Apache, který využívá vlákna nebo procesy). Velice častý způsob použití funguje na principu, že příchozí HTTP (nebo HTTPS) požadavek se nejprve pokusí vyhledat ve své cache (má konfigurovatelnou velikost a dobu uchovávání), pokud jej najde, rovnou odpoví. V opačném případě se obrátí na jeden z definované sady serverů (každý server má definovanou prioritu). Pokud mu server do definovaného času stihne odpovědět, předá odpověď; v opačném případě se obrátí na záložní server (samozřejmě je-li definován). Odpověď, pokud může, uloží do své cache a následující dotazy do vypršení časového limitu životnosti cache vyřizuje právě z cache. Jedním z nastavení je možnost nastavit limit počtu připojení z jedné IP adresy (jedna z nejjednodušších obran proti DOS útoku). Nginx je modulární systém a lze přidávat moduly (mnohdy je nutná rekompilace). Jeden z modulů je například GEO lokace, která umožňuje například dle země předávat požadavky na definované servery nebo naopak zakázat přístup na stránky z některých zemí. Za zmínku určitě stojí také moduly pro přesměrování dle definovaných pravidel, zabezpečení stránky heslem, podpora komprese gzip, streaming (FLV, MP4) a mnoho dalších funkcí.
Od verze 1.9.5 podporuje nový protokol HTTP/2.
Mail server
- SMTP, POP3, IMAP proxy
- SSL (Secure Sockets Layer)
- STARTTLS - již neexistuje
Rozšířenost
Různé statistiky udávají různá čísla, v průměru se ale globální podíl na konci roku 2016 pohyboval okolo 16 %.[7] Kvůli poměrně propracované možnosti rozložení zátěže jej používají častěji větší a velké firmy. Z českých firem to je například Seznam.cz, FTV Prima nebo Česká Spořitelna. Ze zahraničních například Nokia, GitHub, WordPress, Dropbox. Tržní podíl serveru Nginx v ČR byl v únoru 2016 na 12,02 %.[8]
Reference
- Changes [online]. Rev. 2017-12-26 [cit. 2018-01-14]. Nginx.org. Dostupné online. (anglicky)
- nginx for Windows [online]. [cit. 2018-01-14]. Dostupné online. (anglicky)
- nginx [online]. [cit. 2018-01-14]. Kapitola Tested OS and platforms. Dostupné online. (anglicky)
- The nginx Open Source Project on Open Hub [online]. Black Duck Software, Inc., rev. 2017-11-20 [cit. 2018-01-14]. Black Duck | Open Hub. Dostupné online. (anglicky)
- Licence [online]. [cit. 2018-01-14]. Dostupné online. (anglicky)
- SEC FORM D [online]. Rev. 2013-10-17. Dostupné online. (anglicky)
- September 2016 Web Server Survey [online]. Netcraft Ltd., rev. 2017-12 [cit. 2018-01-14]. Dostupné online. (anglicky)
- Jak vypadá český internet z pohledu Seznamu?. Blog Seznam.cz [online]. Seznam.cz, a.s. [cit. 2018-01-14]. Dostupné online. (česky)
Externí odkazy
- Obrázky, zvuky či videa k tématu Nginx na Wikimedia Commons
- (anglicky) wiki.nginx.org
- (anglicky) nginx.org
- (anglicky) mailman.nginx.org