Nginx

Nginx

nginx logo
Tyyppi web-palvelin ja välityspalvelin
Tekijä Igor Vladimirovich Sysoev
Kehittäjä NGINX Inc. [d] jaIgor Vladimirovich Sysoev
Sisään kirjoitettu C [5]
Käyttöjärjestelmä Unix-tyyppinen käyttöjärjestelmä ja Microsoft Windows
Ensimmäinen painos 4. lokakuuta 2004 [1]
uusin versio
Testiversio
Luettavat tiedostomuodot PEM-koodattu varmenne [d] [6], PEM-koodattu yksityinen RSA-avain [d] [6]ja Nginx-sivustot - saatavilla [d]
Lisenssi 2-lauseke BSD-lisenssi [7] [8]
Verkkosivusto nginx.org
 Mediatiedostot Wikimedia Commonsissa

Nginx (e ngin e x  - venäjäksi se lausutaan enginx tai engin -x [9][Comm 1] ) on verkkopalvelin ja sähköpostin välityspalvelin, joka toimii Unixin kaltaisissa käyttöjärjestelmissä (testattu kokoonpano ja toiminta FreeBSD :llä , OpenBSD :llä , Linuxilla , Solarisella , macOS :llä , AIX :llä ja HP-UX:lla ). Versiosta 0.7.52 alkaen kokeellinen binääriversio Microsoft Windowsille [10] on ilmestynyt .

Igor Sysoev aloitti kehityksen vuonna 2002 [11] . Syksyllä 2004 julkaistiin ensimmäinen julkisesti saatavilla oleva julkaisu. Heinäkuusta 2011 lähtien nginx-työ on jatkunut Nginx-yrityksessä.

Päätoiminnot

Valmistaja on sijoittanut Nginxin yksinkertaiseksi, nopeaksi ja luotettavaksi palvelimeksi, joka ei ole ylikuormitettu ominaisuuksilla.

Nginxin käyttö on parasta staattisille verkkosivustoille ja käänteisenä välityspalvelimena dynaamisille verkkosivustoille .

HTTP-palvelin

SMTP/IMAP/POP3-välityspalvelin

Arkkitehtuuri

Nginxissä työprosessit palvelevat useita yhteyksiä samanaikaisesti, multipleksoivat ne select-, epoll- ( Linux ) ja kqueue- ( FreeBSD ) -käyttöjärjestelmäkutsuilla. Työntekijäprosessit suorittavat tapahtumasilmukan kahvoista (katso tapahtumaohjattu ohjelmointi ). Asiakkaalta saadut tiedot jäsennetään tilakoneella . Kokoonpanon määrittämä moduuliketju käsittelee jäsennetyn pyynnön peräkkäin. Vastaus asiakkaalle muodostetaan puskureihin , jotka tallentavat tietoja joko muistiin tai osoittavat tiedostosegmentille. Puskurit yhdistetään ketjuiksi, jotka määrittävät järjestyksen, jossa data siirretään asiakkaalle. Jos käyttöjärjestelmä tukee tehokkaita I/O-toimintoja, kuten writev ja sendfile , nginx käyttää niitä aina kun mahdollista.

HTTP-palvelimen algoritmi on seuraava [12] :

  1. hanki seuraava kahva keventiltä (2) ;
  2. lue tiedot tiedostosta ja kirjoita liitäntään käyttämällä joko write(2) / read(2) , kuten tämä [Comm 2] :
sillä aikaa ( ( cnt = lue ( read_file_descriptor , puskuri , block_size ), kirjoittaa ( socket_file_descriptor , puskuri , Kreivi ) == cnt ) ) byte_count += count ; joko käyttämällä sendfile(2) järjestelmäkutsua , joka tekee saman kuin yllä oleva koodi, mutta ydintilassa;
  1. siirry vaiheeseen 1.

Nginx HTTP-palvelimen kokoonpano on jaettu virtuaalisiin palvelimiin ("palvelin"-direktiivi). Virtuaalipalvelimet on jaettu sijainteihin ("sijainti"). Virtuaalipalvelimelle on mahdollista asettaa osoitteita ja portteja, joissa yhteydet hyväksytään, sekä nimiä, jotka voivat sisältää "*" ilmaisemaan mielivaltaisen sekvenssin ensimmäisessä ja viimeisessä osassa tai jotka voidaan määrittää säännöllisellä lausekkeella.

sijainnit voidaan määrittää tarkalla URI :lla, osalla URI :ta tai säännöllisellä lausekkeella . Sijainnit voidaan määrittää palvelemaan pyyntöjä staattisesta tiedostosta, välityspalvelinta fastcgi/memcached-palvelimelle.

Tehokkaaseen muistinhallintaan nginx käyttää pooleja . Pooli  on dynaamisen muistin ennalta varattujen lohkojen sarja. Lohkon pituus vaihtelee 1 - 16 kilotavua. Aluksi allasalueelle on varattu vain yksi lohko. Kortteli on jaettu asuinalueeseen ja vapaaseen alueeseen. Pienten kohteiden valinta suoritetaan siirtämällä osoitin vapaalle alueelle ottaen huomioon kohdistus. Jos vapaa alue kaikissa lohkoissa ei riitä uuden kohteen varaamiseen, varataan uusi lohko. Jos allokoidun objektin koko ylittää NGX_MAX_ALLOC_FROM_POOL -vakion arvon tai lohkon pituuden, se allokoidaan kokonaan kasasta.

Siten pienet kohteet allokoidaan hyvin nopeasti ja niillä on vain kohdistuskustannukset .

nginx sisältää moduulin asiakkaiden maantieteellistä luokittelua varten IP-osoitteen mukaan . Se perustuu tietokantaan IP-osoitteiden vastaavuudesta maantieteelliseen alueeseen, joka esitetään kantalukupuuna (pakattu etuliitepuu tai pakattu metsä) RAM -muistissa . nginx esiallokoi puun ensimmäiset tasot niin, että ne vievät tasan yhden sivun muistia. Tämä varmistaa, että kun etsit IP-osoitetta osoitteenmuunnoksen ensimmäisille solmuille, TLB :ssä on aina merkintä .

Suosio

Elokuussa 2020 nginxin palvelemien sivustojen määrä ylitti Netcraftin mukaan 448 miljoonaa , mikä tekee siitämaailman ensimmäisen suosituimman verkkopalvelimen . Osuus aktiivisista sivustoista on 19,74 % , mikä asettaa nginxin toiselle sijalle Apache -verkkopalvelimen jälkeen [13] .

W3Techsin mukaan nginxiä käytetään yleisimmin paljon kuormitettavilla sivustoilla [14] , ja se sijoittuu käyttötiheyden suhteen ensimmäiseksi maailman 100 000 vierailluimman sivuston joukossa - yli kolmasosa niistä toimii nginxillä.

Venäläisen rekisterinpitäjän REG.RU mukaan nginx on suosituin verkkopalvelin .ru [15] , .rf [16] ja .su [17] verkkoalueille ja palvelee yli puolta kustakin segmentistä.

NGINX on Venäjän suosituin verkkopalvelin 65,90 prosentin markkinaosuudella [18] .

Tunnetuista nginxiä käyttävistä projekteista: 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 ja monet muut [13] .

Nginx-yritys

Nginx Inc.
Tyyppi yksityisyritys
Pohja 2011
Poistettu 2016
Syy poistoon siirtyi F5 Networksille
Perustajat Igor Vladimirovich Sysoev
Sijainti  Yhdysvallat :San Francisco,Kalifornia
Ala ohjelmistokehitys ( ISIC :) 6201 _
Tuotteet Nginx, Nginx Plus
Verkkosivusto nginx.com
 Mediatiedostot Wikimedia Commonsissa

Kehittääkseen kaupallisia tuotteita Igor Sysoev loi Nginxin heinäkuussa 2011 [35] . Kehitys suoritetaan Moskovassa sijaitsevassa toimistossa, myyntiä varten luotiin amerikkalainen "tytär" - Nginx Inc [36] . Helmikuussa 2012 yritys aloitti maksullisten palvelujen tarjoamisen [37] , otettiin käyttöön kolme teknistä tukipakettia - Premium, Advanced ja Essential, joiden puitteissa tilaajat saivat asennuksen, suorituskyvyn virityksen, konfiguroinnin, ylläpidon, suunnitteluavun ja lopulliset optimointipalvelut.

Joulukuussa 2011 yritys keräsi 3 miljoonaa dollaria sijoittajapoolista (kierroksen kärjessä oli BV Capital ; yhteissijoittajia olivat Runa Capital ja Michael Dellin MSD Capital -perherahasto [36] [38] ) .

Lokakuussa 2013 yhtiö keräsi vielä 10 miljoonaa dollaria. Pääsijoittaja oli New Enterprise Associates ; yhteissijoittajia olivat kaikki edellisen kierroksen rahastot sekä Box.comin johtaja Aaron Levy [39] .

9. joulukuuta 2014 julkistettiin 20 miljoonan dollarin lisäinvestointi. Kierroksen johti New Enterprise Associates -riskipääomarahasto, johon osallistuivat Index Ventures , Runa Capital, E.ventures (entinen BV Capital ) ja Nginxin toimitusjohtaja Gus Robertson [40] [41] [42] .

11. maaliskuuta 2019 F5 Networks ilmoitti [43] ostavansa Nginxin 670 miljoonalla dollarilla, kauppa saatiin päätökseen 9. toukokuuta 2019 [44] [45] .

12. joulukuuta 2019 tuli tunnetuksi, että Rambler-konserni (josta 46,5 % on Venäjän Sberbankin [46] omistuksessa ) vaati yksinoikeuksia nginx-lähdekoodiin, jotkut tiedotusvälineet raportoivat etsinnästä Nginxin toimistossa ja §:n mukainen rikosasia. Venäjän federaation rikoslain 146 § (Tekijänoikeuden ja lähioikeuksien loukkaus) [47] [48] [49] [50] . 18. toukokuuta 2020 tapaus hylättiin Venäjän federaation rikosprosessilain 24 §:n 1 osan 1 kohdan nojalla (rikostapahtuman puuttuminen) [51] [52] [53] .

18. tammikuuta 2022 ilmoitettiin, että Igor Sysoev jättää Nginxin ja F5:n [54] .

Katso myös

Muistiinpanot

Kommentit
  1. En:x - kirjainta englanniksi kutsutaan ex /ˈɛks/
  2. FreeBSD 1.0, 1993. Toimintokoodi send_data()lähteestä src/libexec/ftpd/ftpd.c.
  3. "Net"-välilehti Firebugista
Lähteet
  1. http://nginx.org/ru/CHANGES.ru
  2. nginx-1.23.2 - 2022.
  3. Dounin M. nginx-1.22.1 - 2022.
  4. Julkaisujulkaisu-1.23.1 - 2022.
  5. Avoimen lähdekoodin nginx-projekti Open Hubissa: Kielet-sivu - 2006.
  6. 1 2 Moduuli ngx_http_ssl_module 
  7. https://nginx.org/LICENSE
  8. Avoimen lähdekoodin nginx-projekti Open Hubissa: Lisenssisivu - 2006.
  9. Luento "Palvelin Internet-sovellusten arkkitehtuurien vertaileva analyysi suurille kuormille", luennoitsija: Igor Sysoev Arkistoitu 24. maaliskuuta 2018 Wayback Machinessa .
  10. https://nginx.org/ru/docs/windows.html Arkistoitu 17. tammikuuta 2020 Wayback Machine nginx for Windowsissa
  11. http://sysoev.ru/nginx/ Wayback Machinen 7. tammikuuta 2006 päivätyssä arkistokopiossa voit lukea: "Aloitin nginxin kehittämisen keväällä 2002... "
  12. Raportti arkistoitu 2. huhtikuuta 2015 Wayback Machinessa Gleb Smirnovin ([email protected]), nginxin ja FreeBSD :n kehittäjänä ruBSD 2014 -konferenssissa 13. joulukuuta 2014.
  13. 1. 2. joulukuuta 2019 verkkopalvelinkysely arkistoitu 14. joulukuuta 2019 Wayback Machinessa 
  14. Verkkopalvelimien käyttö järjestyksen mukaan Arkistoitu 5. helmikuuta 2013.  (Englanti)
  15. .RU-alueen Web-palvelimet . Haettu 6. helmikuuta 2014. Arkistoitu alkuperäisestä 9. helmikuuta 2014.
  16. .RF-alueen web-palvelimet . Haettu 6. maaliskuuta 2014. Arkistoitu alkuperäisestä 2. maaliskuuta 2014.
  17. .SU-vyöhykkeen web-palvelimet . Haettu 6. maaliskuuta 2014. Arkistoitu alkuperäisestä 2. maaliskuuta 2014.
  18. Venäjän Internetin tilastot . runfo.ru Haettu 17. toukokuuta 2017. Arkistoitu alkuperäisestä 17. helmikuuta 2017.
  19. Rambler.ru:n käyttämät verkkoteknologiat  (englanniksi)
  20. Yandex.ru:n käyttämät verkkoteknologiat  (englanniksi)
  21. Vk.comin  käyttämät verkkoteknologiat
  22. Netflix – laiteohjelmisto . Haettu 14. helmikuuta 2018. Arkistoitu alkuperäisestä 16. helmikuuta 2018.
  23. Instagram.comin käyttämät verkkoteknologiat 
  24. Habrahabr.ru:n käyttämät verkkoteknologiat  (englanniksi)
  25. Livejournal.comin käyttämät verkkoteknologiat 
  26. Avito.ru:n käyttämät verkkoteknologiat  (englanniksi)
  27. Badoo.comin  käyttämät verkkoteknologiat
  28. GET -ed http://sourceforge.net Arkistoitu 8. tammikuuta 2011 Wayback Machinessa | grep-palvelin
  29. Qiwi.comin käyttämät verkkoteknologiat . w3techs.com. Käyttöönottopäivä: 20.5.2016.
  30. Pinterest.comin käyttämät verkkoteknologiat 
  31. Tumblr.comin  käyttämät verkkoteknologiat
  32. Superjob.ru:n käyttämät verkkoteknologiat  (englanniksi)
  33. Hh.ru:n  käyttämät verkkoteknologiat
  34. 2gis.ru:n käyttämät verkkoteknologiat  (englanniksi)
  35. Nginxin perustajat: Kenenkään ei pitäisi tietää tuotteestamme . Vedomosti (17. maaliskuuta 2019). Haettu 14. joulukuuta 2019. Arkistoitu alkuperäisestä 14. joulukuuta 2019.
  36. 1 2 Anastasia Golitsyna. Nginx saa 3 miljoonaa dollaria  varoja . Vedomosti (11. lokakuuta 2011). Haettu 19. lokakuuta 2014. Arkistoitu alkuperäisestä 17. toukokuuta 2013.
  37. NGINX alkaa tarjota maksullisia palveluita asiakkailleen arkistoitu 13. maaliskuuta 2012 Wayback Machinessa 
  38. Natasha Starkell. Venäjän Nginx kerää 3 miljoonaa dollaria kansainvälisiltä  sijoittajilta . Techcrunch (11. lokakuuta 2011). Käyttöpäivä: 19. lokakuuta 2014. Arkistoitu alkuperäisestä 27. lokakuuta 2014.
  39. Frederick Lardinois. Nginx keräsi 10 miljoonan dollarin B-sarjan kierroksen  NEA :n johdolla . Techcrunch (15. lokakuuta 2013). Haettu 19. lokakuuta 2014. Arkistoitu alkuperäisestä 20. lokakuuta 2014.
  40. Maria Kolomychenko. Nginx on päässyt kolmannelle kierrokselle . Kommersant (9. joulukuuta 2014). Haettu 9. joulukuuta 2014. Arkistoitu alkuperäisestä 9. joulukuuta 2014.
  41. Frederick Lardinois. Nginx kerää 20 miljoonaa dollaria Series B1 -kierroksella edistääkseen kansainvälistä  laajentumista . Techcrunch (9. joulukuuta 2014). Käyttöpäivä: 9. joulukuuta 2014. Arkistoitu alkuperäisestä 10. joulukuuta 2014.
  42. Jordania marraskuu. Nginx saa 20 miljoonaa dollaria, koska avoimen lähdekoodin verkkopalvelin on vasta  alkua . Venture Beat (9. joulukuuta 2014). Käyttöpäivä: 9. joulukuuta 2014. Arkistoitu alkuperäisestä 10. joulukuuta 2014.
  43. Lomake 8-K . Haettu 15. joulukuuta 2019. Arkistoitu alkuperäisestä 15. joulukuuta 2019.
  44. F5 Networks - F5 suorittaa NGINX:n hankinnan päätökseen . Haettu 15. joulukuuta 2019. Arkistoitu alkuperäisestä 15. joulukuuta 2019.
  45. NGINX on nyt virallisesti osa F5-NGINX:ää . Haettu 15. joulukuuta 2019. Arkistoitu alkuperäisestä 12. joulukuuta 2019.
  46. Sberbank päätti kaupan ostaa 46,5 % Rambler Groupista . RBC. Haettu 14. joulukuuta 2019. Arkistoitu alkuperäisestä 12. joulukuuta 2019.
  47. Rambler väittää Nginxin . Kommersant . Haettu 12. joulukuuta 2019. Arkistoitu alkuperäisestä 11. marraskuuta 2020.
  48. Nginx IT - yrityksen toimistossa suoritettiin tutkintatoimia . Radio Liberty (12. joulukuuta 2019). Haettu 12. joulukuuta 2019. Arkistoitu alkuperäisestä 12. joulukuuta 2019.
  49. Etsinnät Nginxin käynnistystoimistossa, perustajat pidätettiin. Asian aloitti Alexander Mamutin yritys . Kello (12.12.2019). Haettu 12. joulukuuta 2019. Arkistoitu alkuperäisestä 12. joulukuuta 2019.
  50. Cimpanu, Catalin Venäjän poliisin ratsian NGINX Moskovan toimistoon  . ZDNet (12. joulukuuta 2019). Haettu 12. joulukuuta 2019. Arkistoitu alkuperäisestä 12. joulukuuta 2019.
  51. MIA lopettaa tapauksen Nginxin perustajia vastaan . RIA Novosti (7.7.2020). Haettu 31. joulukuuta 2021. Arkistoitu alkuperäisestä 11. kesäkuuta 2021.
  52. Sisäasiainministeriö vahvisti Nginxin oikeuksia koskevan rikosoikeudenkäynnin lopettamisen . Interfax (7. heinäkuuta 2020). Haettu 31. joulukuuta 2021. Arkistoitu alkuperäisestä 10. toukokuuta 2022.
  53. Sisäasiainministeriö ilmoitti Nginxin oikeuksia koskevan asian lopettamisesta . RBC (22. kesäkuuta 2020). Haettu 31. joulukuuta 2021. Arkistoitu alkuperäisestä 7. marraskuuta 2021.
  54. Whiteley, Rob . Älä Svidaniya, Igor, ja kiitos NGINX:stä  , NGINX (  18. tammikuuta 2022). Arkistoitu alkuperäisestä 19. tammikuuta 2022. Haettu 19. tammikuuta 2022.  "ilmoitamme tänään, että Igor on päättänyt vetäytyä NGINX:stä ja F5:stä viettääkseen enemmän aikaa ystäviensä ja perheensä kanssa ja toteuttaakseen henkilökohtaisia ​​projekteja".

Linkit