Nginx

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání
Nginx
Logo
Vývojář Nginx, Inc.
První vydání 0.1.0 / 4. října 2004[1]
Aktuální verze 1.14.0 (17. dubna 2018[2])
Nestabilní verze 1.15.3 (28. srpna 2018[3])
Operační systém multiplatformní[4][5]
Vyvíjeno v C[6]
Typ softwaru webový server, reverzní/mail/proxy server
Licence 2-bodová BSD[7]
Web nginx.org
Některá data mohou pocházet z datové položky.

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.

Historie[editovat | editovat zdroj]

Na jaře 2001 byl vyvinut modul mod_accel do Apache [əˈpæči] jako náhradu staršího mod_proxy. Z důvodů nespokojenosti s funkčností a škálovatelností Apache se rozhodl Igor Sysoev vyvinout Nginx. Vývoj započal v roce 2002 a o dva roky později, 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.[8]

Funkce[editovat | editovat zdroj]

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[editovat | editovat zdroj]

Rozšířenost[editovat | editovat zdroj]

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 %.[9] 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. 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 %.[10]

Reference[editovat | editovat zdroj]

  1. Changes [online]. Rev. 2017-12-26 [cit. 2018-01-14]. Nginx.org. Dostupné online. (anglicky) 
  2. DOUNIN, Maxim. [nginx-announce] nginx-1.12.2 [online]. Rev. 2017-10-17 [cit. 2018-01-14]. Nginx-announce. Dostupné online. (anglicky) 
  3. DOUNIN, Maxim. [nginx-announce] nginx-1.13.7 [online]. Rev. 2017-11-21 [cit. 2018-01-14]. Nginx-announce. Dostupné online. (anglicky) 
  4. nginx for Windows [online]. [cit. 2018-01-14]. Dostupné online. (anglicky) 
  5. nginx [online]. [cit. 2018-01-14]. Kapitola Tested OS and platforms. Dostupné online. (anglicky) 
  6. 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) 
  7. Licence [online]. [cit. 2018-01-14]. Dostupné online. (anglicky) 
  8. SEC FORM D [online]. Rev. 2013-10-17. Dostupné online. (anglicky) 
  9. September 2016 Web Server Survey [online]. Netcraft Ltd., rev. 2017-12 [cit. 2018-01-14]. Dostupné online. (anglicky) 
  10. Jak vypadá český internet z pohledu Seznamu?. Blog Seznam.cz [online]. Seznam.cz, a.s. [cit. 2018-01-14]. Dostupné online. (česky) 

Externí odkazy[editovat | editovat zdroj]