Vývojář | Nginx, Inc. |
---|---|
První vydání | 0.1.0 / 4. října 2004[1] |
Aktuální verze | 1.27.2 (2. října 2024) |
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. |
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.
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]
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.
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]