Nginx je softwarový webový server, který má load management a reverzní proxy s otevřeným zdrojovým kódem. Protokoly, se kterými pracuje, jsou http, https, SMTP, POP3, IMAP nebo SSL. Zaměření je především na vysoký výkon spolu s nízkými nároky na paměť. Nginx je dostupný na Unix-like systémech pod BSD jako například v případě Unix, Linux, ale je dostupný i pro Solaris, macOS nebo MS Windows.
Hlavním cílem Nginxu je rychlá distribuce statického obsahu a umožnění maximálního rozložení zátěže mezi další servery na základě nastavených priorit. Systém je zároveň uzpůsoben tak, že umožňuje definovat záložní server, na který pak může Nginx požadavek předat v případě, že primární server nedodá ve stanoveném limitu odpověď.
Přicházející požadavky jsou zpracovávány asynchronně, což se liší například od Apache, který používá systém vláken nebo procesů. Typickým způsobem použití je, že příchozí http nebo https požadavek se primárně pokouší vyhledat své cache, které má konfigurovatelnou velikost i dobu uchování. V případě, že svou cache najde, rovnou odešle odpověď.
V případě opačném se obrátí na jeden ze serverů patřících do definované sady. Tyto servery mají určenou prioritu. V případě, že server v rámci definovaného času nedoručí odpověď, obrátí se na server záložní.
Pokud je to možné, odpověď je uložena do cache a díky tomu pak může následující dotazy do vypršení nastaveného časového limitu zpracovávat z cache. Zároveň je možné nastavit limit počtu připojení z jedné IP adresy, což je základní obrana proti DDOS útokům.
Nginx je postaven na principu modulárního systému, je tedy možné moduly přidávat, ale často to s sebou nese nutnost rekompilace. Jedním z modulů je například GEO lokace. Ta umožňuje předávání požadavků na definované servery podle země, nebo naopak blokovat přístup na stránky z definovaných zemí.
Dalšími užitečnými moduly jsou například moduly pro přesměrování podle definované sady pravidel, zabezpečení stránky heslem, streaming ve formátech FLV nebo MP4 a podpora komprese gzip.
Nginx i Apache jsou mezi nejaktivněji používanými open-sourcovými servery na internetu.
Pokud hledáte maximální výkon při práci se statickým obsahem, bude obvykle lepší použít Nginx. Nginx zároveň vede v oblastech jako je škálovatelnost, streaming médií, VPS hosting nebo reverzní proxy.
Apache je vhodný, pokud je potřeba upravovat .htaccess soubor pro konfiguraci serveru, protože Nginx tuto možnost vůbec nepodporuje. Apache já zároveň lepší v případě prostředí sdíleného hostingu a nabízí kontrolní panel, který usnadňuje změny na straně serveru.