Nginx | |
---|---|
nginx logó | |
Típusú | webszerver és proxyszerver |
Szerző | Igor Vladimirovich Sysoev |
Fejlesztő | NGINX Inc. [d] ésIgor Vladimirovich Sysoev |
Beírva | C [5] |
Operációs rendszer | Unix-szerű operációs rendszer és Microsoft Windows |
Első kiadás | 2004. október 4. [1] |
legújabb verzió |
|
Teszt verzió |
|
Olvasható fájlformátumok | PEM-kódolt tanúsítvány [d] [6], PEM-kódolású RSA privát kulcs [d] [6]és Nginx-helyek – elérhetők [d] |
Engedély | 2 szakaszos BSD-licenc [7] [8] |
Weboldal | nginx.org _ |
Médiafájlok a Wikimedia Commons oldalon |
Nginx (e ngin e x - oroszul enginx-nek vagy engin -x- nek ejtik [9][Comm 1] ) egy Unix -szerű operációs rendszereken futó webszerver és levelezőproxy szerver (Tesztelt összeállítás és működés FreeBSD , OpenBSD , Linux , Solaris , macOS , AIX és HP-UX rendszeren ). A 0.7.52-es verziótól kezdve megjelent a Microsoft Windows [10] kísérleti bináris buildje .
Igor Sysoev 2002 -ben kezdte el a fejlesztést [11] . 2004 őszén jelent meg az első nyilvánosan elérhető kiadás. 2011 júliusa óta az nginx-szel kapcsolatos munka folyik az Nginx vállalaton belül.
Az Nginx-et a gyártó egyszerű, gyors és megbízható szerverként pozicionálja, amely nincs túlterhelve szolgáltatásokkal.
Az nginx használata a legjobb statikus webhelyekhez és fordított proxyként dinamikus webhelyekhez .
Az nginxben a munkafolyamatok sok kapcsolatot szolgálnak ki egyszerre, multiplexálva azokat select, epoll ( Linux ) és kqueue ( FreeBSD ) operációs rendszerhívásokkal. A dolgozói folyamatok eseményhurkot hajtanak végre a fogantyúkból (lásd az eseményvezérelt programozást ). A klienstől kapott adatok elemzése állapotgép segítségével történik . Az elemzett kérést a konfigurációban meghatározott modullánc szekvenciálisan dolgozza fel. A kliensnek adott válasz pufferekben jön létre, amelyek vagy a memóriában tárolják az adatokat, vagy egy fájlszegmensre mutatnak. A puffereket láncokká egyesítik, amelyek meghatározzák az adatok klienshez való átvitelének sorrendjét. Ha az operációs rendszer támogatja a hatékony I/O műveleteket, mint például a writev és a sendfile , akkor az nginx ezeket használja, amikor csak lehetséges.
A HTTP szerver algoritmusa a következő [12] :
Az nginx HTTP-kiszolgáló konfigurációja virtuális szerverekre van felosztva (a "szerver" direktíva). A virtuális szerverek helyekre ("location") vannak osztva. Egy virtuális szervernél lehetőség van beállítani címeket és portokat, amelyeken a kapcsolatok fogadásra kerülnek, valamint olyan neveket, amelyekben az első és az utolsó részben egy tetszőleges sorozatot jelezhet, vagy reguláris kifejezéssel lehet megadni.
A helyek megadhatók a pontos URI -val, az URI egy részével vagy egy reguláris kifejezéssel . A helyek konfigurálhatók úgy, hogy statikus fájlból kiszolgálják a kéréseket, proxyként egy fastcgi/memcached szerverre.
A hatékony memóriakezelés érdekében az nginx poolokat használ . A készlet a dinamikus memória előre lefoglalt blokkjainak sorozata. A blokk hossza 1 és 16 kilobájt között változik. Kezdetben csak egy blokk van kijelölve a medencéhez. A blokk egy lakott területre és egy szabad területre van felosztva. A kis objektumok kijelölése úgy történik, hogy a mutatót egy üres területre mozgatjuk, figyelembe véve az igazítást. Ha az összes blokkban lévő szabad terület nem elegendő egy új objektum hozzárendeléséhez, akkor egy új blokk kerül kiosztásra. Ha az allokált objektum mérete meghaladja az NGX_MAX_ALLOC_FROM_POOL konstans értékét vagy a blokk hosszát, akkor a kupacból teljesen lefoglalják.
Így a kis objektumok nagyon gyorsan kiosztásra kerülnek, és csak az igazítás többletköltségei vannak .
Az nginx tartalmaz egy modult az ügyfelek IP-cím szerinti földrajzi osztályozására . Az IP-címek egy földrajzi régióhoz való megfelelését tartalmazó adatbázison alapul, amelyet radix faként (tömörített előtag faként vagy tömörített erdőként) ábrázolnak a RAM -ban . Az nginx előre lefoglalja a fa első néhány szintjét, hogy azok pontosan 1 oldal memóriát foglaljanak el. Ez biztosítja, hogy amikor a címfordítás első néhány csomópontjához IP -címet keres, mindig legyen bejegyzés a TLB -ben .
A Netcraft szerint 2020 augusztusában az nginx által kiszolgált webhelyek száma meghaladja a 448 milliót , ezzel a világ első legnépszerűbb webszervere . Az aktív oldalak aránya 19,74% , ami az nginx-et a második helyre teszi az Apache webszerver után [13] .
A W3Techs szerint az nginxet leggyakrabban nagy terhelésű oldalakon használják [14] , ami a használat gyakoriságát tekintve az első helyen áll a világ 100 000 leglátogatottabb oldala között – ezeknek több mint egyharmada fut nginxen.
A REG.RU orosz regisztrátor szerint az nginx a legnépszerűbb webszerver a .ru [15] , .rf [16] és .su [17] tartomány zónáiban , az egyes szegmensek több mint felét kiszolgálva.
Az NGINX a legnépszerűbb webszerver Oroszországban 65,90%-os piaci részesedéssel [18] .
Az nginxet használó jól ismert projektek közül: Rambler [19] , Yandex [20] , VKontakte [21] , Facebook , Netflix [22] , Instagram [23] , Mail.ru , Habr [24] , LiveJournal [25] , Avito .ru [26] , Badoo [27] , Ukr.net , Begun , Wordpress.com , SourceForge.net [28] , Qiwi.com [29] , Groupon , Rutracker.org [Comm 3] , Pinterest [30] , Tumblr [31] , Superjob.ru [32] , HeadHunter [33] , 2GIS [34] , Orcatec és még sokan mások [13] .
Nginx Inc. | |
---|---|
Típusú | privát vállalat |
Bázis | 2011 |
megszüntették | 2016 |
A megszüntetés oka | az F5 Networks vette át |
Alapítók | Igor Vladimirovich Sysoev |
Elhelyezkedés | Egyesült Államok :San Francisco,Kalifornia |
Ipar | szoftverfejlesztés ( ISIC :) 6201 _ |
Termékek | Nginx, Nginx Plus |
Weboldal | nginx.com |
Médiafájlok a Wikimedia Commons oldalon |
A kereskedelmi termékek fejlesztése érdekében Igor Sysoev 2011 júliusában létrehozta az Nginxet [35] . A fejlesztést egy moszkvai irodában végzik, értékesítésre létrehoztak egy amerikai "lányát" - az Nginx Inc [36] . 2012 februárjában a cég megkezdte a fizetős szolgáltatások nyújtását [37] , három technikai támogatási csomagot vezettek be - Prémium, Advanced és Essential, amelyeken belül az előfizetők telepítési, teljesítményhangolási, konfigurációs, karbantartási, tervezési segítségnyújtást és végső optimalizálási szolgáltatásokat kaptak.
2011 decemberében a cég 3 millió dollárt gyűjtött be egy befektetői körből (a fordulóban a BV Capital volt a vezető ; társbefektetők a Runa Capital és Michael Dell MSD Capital családi alapja [36] [38] ) .
2013 októberében a cég további 10 millió dollárt vett fel. A vezető befektető a New Enterprise Associates volt ; társbefektetők voltak az előző kör összes alapja, valamint Aaron Levy , a Box.com vezetője [39] .
2014. december 9-én további 20 millió dolláros beruházást jelentettek be. A fordulót a New Enterprise Associates kockázati tőkealap vezette, az Index Ventures , a Runa Capital, az E.ventures (korábbi BV Capital ) és az Nginx vezérigazgatója, Gus Robertson [40] [41] [42] részvételével .
2019. március 11-én az F5 Networks bejelentette [43] az Nginx megvásárlását 670 millió dollárért, az ügylet 2019. május 9-én zárult le [44] [45] .
2019. december 12-én vált ismertté, hogy a Rambler vállalat (amelynek 46,5%-a az orosz Sberbank [46] tulajdonában van ) kizárólagos jogot követelt az nginx forráskódjára, egyes sajtóorgánumok beszámoltak az Nginx irodájában végzett keresésről és egy szerinti büntetőügy. Az Orosz Föderáció Büntetőtörvénykönyvének 146. cikke (Szerzői és szomszédos jogok megsértése) [47] [48] [49] [50] . 2020. május 18-án az ügyet az Orosz Föderáció Büntetőeljárási Törvénykönyve 24. cikke 1. részének 1. szakasza alapján (bűncselekmény hiánya) [51] [52] [53] elutasították .
2022. január 18-án bejelentették, hogy Igor Sysoev elhagyja az Nginxet és az F5-öt [54] .
Webszerverek | |
---|---|
ASP.NET |
|
C | |
Erlang | |
Jáva | |
Csuka |
|
Piton | |
rubin |
![]() | |
---|---|
Tematikus oldalak |