Nginx

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.

Fő funkciók

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 .

HTTP szerver

SMTP/IMAP/POP3 proxyszerver

Építészet

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] :

  1. get next hand from kevent (2) ;
  2. olvassa el az adatokat a fájlból, és írjon a socketbe a write(2) / read(2) használatával , például [Comm 2] :
míg ( ( cnt = olvas ( read_file_descriptor , puffer , block_size ), ír ( socket_file_descriptor , puffer , számol ) == cnt ) ) byte_count += count ; vagy a sendfile(2) rendszerhívás használatával , amely ugyanazt teszi, mint a fenti kód, csak a kerneltérben;
  1. folytassa az 1. lépéssel.

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 .

Népszerűség

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 cég

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] .

Lásd még

Jegyzetek

Hozzászólások
  1. Az en:x betűt angolul ex /ˈɛks/-nek hívják
  2. FreeBSD 1.0, 1993. Funkciókód send_data()innen: src/libexec/ftpd/ftpd.c.
  3. "Net" lap a Firebugtól
Források
  1. http://nginx.org/ru/CHANGES.ru
  2. nginx-1.23.2 – 2022.
  3. Dounin M. nginx-1.22.1 – 2022.
  4. Kiadás 1.23.1 - 2022.
  5. Az nginx nyílt forráskódú projekt az Open Hubon: Nyelvek oldala - 2006.
  6. 1 2 Modul ngx_http_ssl_module 
  7. https://nginx.org/LICENSE
  8. Az nginx nyílt forráskódú projekt az Open Hubon: Licencek oldala - 2006.
  9. Előadás "Szerver Internetes alkalmazások architektúráinak összehasonlító elemzése nagy terhelésre", előadó: Igor Sysoev Archiválva 2018. március 24-én a Wayback Machine -nél .
  10. https://nginx.org/ru/docs/windows.html Archivált 2020. január 17-én a Wayback Machine nginx for Windows-on
  11. A http://sysoev.ru/nginx/ oldalon a Wayback Machine 2006. január 7-i archív példányán olvasható: „2002 tavaszán kezdtem el fejleszteni az nginxet…”
  12. Jelentés archiválva 2015. április 2-án a Wayback Machine -nél, Gleb Smirnov (glebius@freebsd.org), nginx és FreeBSD fejlesztő által a ruBSD 2014 konferencián 2014. december 13-án.
  13. ↑ 2019. december 1. 2. Webszerver-felmérés archiválva : 2019. december 14. a Wayback Machine -nél 
  14. A webszerverek használata rangsor szerinti bontásban Archivált 2013. február 5.  (Angol)
  15. A .RU zóna webszerverei . Letöltve: 2014. február 6. Az eredetiből archiválva : 2014. február 9..
  16. Az .RF zóna webszerverei . Letöltve: 2014. március 6. Az eredetiből archiválva : 2014. március 2..
  17. A .SU zóna webszerverei . Letöltve: 2014. március 6. Az eredetiből archiválva : 2014. március 2..
  18. Az orosz internet statisztikái . runfo.ru Letöltve: 2017. május 17. Az eredetiből archiválva : 2017. február 17.
  19. A Rambler.ru által használt webtechnológiák  (angol)
  20. A Yandex.ru által használt webtechnológiák  (angol)
  21. ↑ A Vk.com  által használt webtechnológiák
  22. Netflix – Appliance Software . Letöltve: 2018. február 14. Az eredetiből archiválva : 2018. február 16..
  23. ↑ Az Instagram.com által használt webtechnológiák 
  24. A Habrahabr.ru által használt webtechnológiák  (angol)
  25. ↑ A Livejournal.com által használt webtechnológiák 
  26. Az Avito.ru által használt webtechnológiák  (angol)
  27. ↑ A Badoo.com  által használt webtechnológiák
  28. GET -ed http://sourceforge.net Archiválva : 2011. január 8. a Wayback Machine -nél | grep szerver
  29. A Qiwi.com által használt webtechnológiák . w3techs.com. Hozzáférés időpontja: 2016. május 20.
  30. ↑ A Pinterest.com által használt webtechnológiák 
  31. ↑ A Tumblr.com  által használt webtechnológiák
  32. A Superjob.ru által használt webtechnológiák  (angol)
  33. ↑ A Hh.ru  által használt webtechnológiák
  34. A 2gis.ru által használt webtechnológiák  (angol)
  35. Az Nginx alapítói: Senkinek sem szabad tudnia termékünkről . Vedomosti (2019. március 17.). Letöltve: 2019. december 14. Az eredetiből archiválva : 2019. december 14.
  36. 1 2 Anastasia Golitsyna. Az Nginx 3 millió dollárt kap  alapból . Vedomosti (2011. október 11.). Letöltve: 2014. október 19. Az eredetiből archiválva : 2013. május 17..
  37. Az NGINX fizetős szolgáltatásokat kínál ügyfeleinek . Archiválva : 2012. március 13. a Wayback Machine -nél 
  38. Natasha Starkell. Az orosz Nginx 3 millió dollárt gyűjt a nemzetközi  befektetőktől . Techcrunch (2011. október 11.). Hozzáférés időpontja: 2014. október 19. Az eredetiből archiválva : 2014. október 27.
  39. Frederick Lardinois. Az Nginx 10 millió dollárt gyűjt a B sorozatból a  NEA vezetésével . Techcrunch (2013. október 15.). Letöltve: 2014. október 19. Az eredetiből archiválva : 2014. október 20..
  40. Mária Kolomicsenko. Nginx belépett a harmadik körbe . Kommerszant (2014. december 9.). Letöltve: 2014. december 9. Az eredetiből archiválva : 2014. december 9..
  41. Frederick Lardinois. Az Nginx 20 millió dollárt gyűjt a B1 sorozatból, hogy előmozdítsa a nemzetközi  terjeszkedést . Techcrunch (2014. december 9.). Hozzáférés időpontja: 2014. december 9. Az eredetiből archiválva : 2014. december 10.
  42. Jordan nov. Az Nginx 20 millió dollárt kap, mert egy nyílt forráskódú webszerver csak a  kezdet . Venture Beat (2014. december 9.). Hozzáférés időpontja: 2014. december 9. Az eredetiből archiválva : 2014. december 10.
  43. 8-K űrlap . Letöltve: 2019. december 15. Az eredetiből archiválva : 2019. december 15.
  44. F5 Networks – F5 befejezi az NGINX beszerzését . Letöltve: 2019. december 15. Az eredetiből archiválva : 2019. december 15.
  45. Az NGINX immár hivatalosan is az F5-NGINX része . Letöltve: 2019. december 15. Az eredetiből archiválva : 2019. december 12.
  46. A Sberbank megkötötte az üzletet a Rambler Group 46,5%-ának megvásárlásáról . RBC. Letöltve: 2019. december 14. Az eredetiből archiválva : 2019. december 12.
  47. Rambler azt állítja, hogy Nginx . Kommerszant . Letöltve: 2019. december 12. Az eredetiből archiválva : 2020. november 11.
  48. Nyomozói cselekmények zajlottak az Nginx IT cég irodájában . Radio Liberty (2019. december 12.). Letöltve: 2019. december 12. Az eredetiből archiválva : 2019. december 12.
  49. Kutatások az Nginx startup irodájában, az alapítókat őrizetbe vették. Az ügyet Alexander Mamut cége kezdeményezte . A harang (2019. december 12.). Letöltve: 2019. december 12. Az eredetiből archiválva : 2019. december 12.
  50. Cimpanu, Catalin Az orosz rendőrség razzia az NGINX moszkvai irodájában  . ZDNet (2019. december 12.). Letöltve: 2019. december 12. Az eredetiből archiválva : 2019. december 12.
  51. A MIA lezárja az Nginx alapítói elleni pert . RIA Novosti (2020. július 7.). Letöltve: 2021. december 31. Az eredetiből archiválva : 2021. június 11.
  52. ↑ A Belügyminisztérium megerősítette az Nginx-hez való jogokkal kapcsolatos büntetőeljárás megszüntetését . Interfax (2020. július 7.). Letöltve: 2021. december 31. Az eredetiből archiválva : 2022. május 10.
  53. ↑ A Belügyminisztérium bejelentette az Nginx-hez való jogokkal kapcsolatos ügy megszüntetését . RBC (2020. június 22.). Letöltve: 2021. december 31. Az eredetiből archiválva : 2021. november 7..
  54. Whiteley, Rob . Do Svidaniya, Igor, és köszönöm az NGINX  -et , NGINX (  2022. január 18.). Az eredetiből archiválva : 2022. január 19. Letöltve 2022. január 19-én.  "A mai napon bejelentjük, hogy Igor úgy döntött, hogy visszalép az NGINX és az F5 kínálatától, hogy több időt tölthessen barátaival és családjával, valamint hogy személyes projekteket hajtson végre".

Linkek