Architektura Nginx je navržena tak, aby dosahovala vysokého výkonu, stability a škálovatelnosti. Níže je podrobný popis klíčových komponent architektury Nginx:
Master Process
Toto je hlavní proces Nginx, také známý jako rodičovský proces. Jeho odpovědností je řízení pracovních procesů a dalších běžných úkolů řízení. Přečte master process a zpracuje konfiguraci a poté vytvoří pracovní procesy pro zpracování požadavků od klientů.
Worker Process
master process Jakmile jsou pracovní procesy vytvořeny, stanou se podřízenými procesy Nginx. Počet pracovních procesů lze nakonfigurovat tak, aby splňovaly požadavky na výkon a zdroje systému. Každý z nich worker process funguje nezávisle, nesdílí paměť a nekomunikuje přímo mezi sebou, což zvyšuje stabilitu Nginx.
Event-driven Architecture
Nginx používá event-driven architecture ke zpracování požadavků. Namísto použití samostatných vláken pro každý požadavek Nginx používá ke zpracování událostí asynchronní funkce. To umožňuje jednomu worker process zpracovávat více požadavků současně, optimalizovat systémové zdroje a zajistit vysoký výkon.
Event Module
Nginx podporuje různé event module pro práci s operačním systémem a síťovou infrastrukturou. Tyto moduly pomáhají Nginx při interakci s jádrem a vyhýbají se zbytečnému blokování a čekání, čímž snižují zátěž systému.
Worker Connections
Toto je počet připojení, které worker process může zpracovat každé současně. Tato konfigurace umožňuje přizpůsobení počtu připojení k zajištění optimálního výkonu na základě systémových prostředků a provozu požadavků klienta.
Proxy a Load Balancing
Nginx může fungovat jako proxy server, což mu umožňuje směrovat požadavky od klientů na servery backendových aplikací v rámci systému. To umožňuje nasazení distribuovaných aplikací a load balancing napříč více servery, což zvyšuje výkon a spolehlivost.
Díky své flexibilní a vysoce výkonné architektuře Nginx se stal jedním z nejpopulárnějších webových serverů a proxy široce používaných po celém světě, splňující rostoucí požadavky na zpracování požadavků a dat na internetu.