Nginx | |
---|---|
| |
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ä.
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 .
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] :
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ä .
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 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] .
Web-palvelimet | |
---|---|
ASP.NET |
|
C | |
Erlang | |
Java | |
Hauki |
|
Python | |
rubiini |
Sosiaalisissa verkostoissa | |
---|---|
Temaattiset sivustot |