Nginx | |
---|---|
| |
Type | webserver og proxyserver |
Forfatter | Igor Vladimirovich Sysoev |
Udvikler | NGINX Inc. [d] ogIgor Vladimirovich Sysoev |
Skrevet i | C [5] |
Operativ system | Unix-lignende operativsystem og Microsoft Windows |
Første udgave | 4. oktober 2004 [1] |
nyeste version |
|
Test version | |
Læsbare filformater | PEM-kodet certifikat [d] [6], PEM-kodet RSA privat nøgle [d] [6]og Nginx-steder-tilgængelige [d] |
Licens | 2-klausul BSD-licens [7] [8] |
Internet side | nginx.org _ |
Mediefiler på Wikimedia Commons |
Nginx (e ngin e x - på russisk udtales det som enginx eller engin-x [9][Comm 1] ) er en webserver og mail -proxyserver, der kører på Unix -lignende operativsystemer (testet montering og drift på FreeBSD , OpenBSD , Linux , Solaris , macOS , AIX og HP-UX ). Fra og med version 0.7.52 er en eksperimentel binær build til Microsoft Windows [10] dukket op .
Igor Sysoev startede udviklingen i 2002 [11] . I efteråret 2004 udkom den første offentligt tilgængelige udgivelse. Siden juli 2011 har arbejdet med nginx været i gang i Nginx-virksomheden.
Nginx er af producenten positioneret som en enkel, hurtig og pålidelig server, der ikke er overbelastet med funktioner.
Brug af nginx er bedst til statiske websteder og som en omvendt proxy for dynamiske websteder .
I nginx betjener arbejdsprocesser mange forbindelser på samme tid og multiplekser dem med select, epoll ( Linux ) og kqueue ( FreeBSD ) operativsystemkald. Arbejdsprocesser udfører en hændelsesløkke fra håndtag (se hændelsesdrevet programmering ). De data, der modtages fra klienten, analyseres ved hjælp af en tilstandsmaskine . Den parsede anmodning behandles sekventielt af kæden af moduler specificeret af konfigurationen. Responsen til klienten dannes i buffere , der lagrer data enten i hukommelsen eller peger på et filsegment. Buffere kombineres i kæder, der bestemmer rækkefølgen, hvori data vil blive overført til klienten. Hvis operativsystemet understøtter effektive I/O-operationer såsom writev og sendfile , så bruger nginx dem, når det er muligt.
Algoritmen for HTTP-serveren er som følger [12] :
nginx HTTP-serverkonfigurationen er opdelt i virtuelle servere ("server"-direktivet). Virtuelle servere er opdelt i lokationer ("placering"). For en virtuel server er det muligt at indstille adresser og porte, som forbindelser vil blive accepteret på, samt navne, der kan indeholde "*" for at angive en vilkårlig sekvens i den første og sidste del, eller være specificeret af et regulært udtryk.
placeringer kan angives af den nøjagtige URI , en del af URI'en eller ved et regulært udtryk . Placeringer kan konfigureres til at betjene anmodninger fra en statisk fil, proxyer til en fastcgi/memcached server.
Til effektiv hukommelsesstyring bruger nginx puljer . En pulje er en sekvens af præ-allokerede blokke af dynamisk hukommelse. Bloklængden varierer fra 1 til 16 kilobyte. I første omgang er der kun afsat én blok til puljen. Blokken er opdelt i et beboet område og et ubeboet område. Udvælgelsen af små objekter udføres ved at flytte markøren til et ubesat område under hensyntagen til justeringen. Hvis det ledige område i alle blokke ikke er nok til at allokere et nyt objekt, tildeles en ny blok. Hvis størrelsen af det allokerede objekt overstiger værdien af NGX_MAX_ALLOC_FROM_POOL konstanten eller længden af blokken, så er den fuldstændig allokeret fra heapen.
Små objekter allokeres således meget hurtigt og har kun overhead for justering .
nginx indeholder et modul til geografisk klassificering af klienter efter IP-adresse . Det er baseret på en database med korrespondance af IP-adresser til et geografisk område, repræsenteret som et radix-træ (komprimeret præfikstræ eller komprimeret skov) i RAM . nginx forudallokerer de første par niveauer af træet, så de fylder præcis 1 sides hukommelse. Dette sikrer, at når du slår en IP-adresse op for de første par noder i adresseoversættelse, vil der altid være en indtastning i TLB'en .
Fra august 2020 overstiger antallet af websteder, der betjenes af nginx , 448 millioner , ifølge Netcraft , hvilket gør det til verdens første mest populære webserver . Andelen blandt aktive sider er 19,74% , hvilket placerer nginx på andenpladsen efter Apache -webserveren [13] .
Ifølge W3Techs er nginx mest almindeligt brugt på websteder med høj belastning [14] , og rangerer først med hensyn til hyppigheden af brug blandt de 100.000 mest besøgte websteder i verden - mere end en tredjedel af dem kører på nginx.
Ifølge den russiske registrator REG.RU er nginx den mest populære webserver for domænezonerne .ru [15] , .rf [16] og .su [17] og betjener mere end halvdelen af hvert segment.
NGINX er den mest populære webserver i Rusland med en markedsandel på 65,90 % [18] .
Blandt de velkendte projekter, der bruger nginx: 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 og mange andre [13] .
Nginx Inc. | |
---|---|
Type | privat virksomhed |
Grundlag | 2011 |
afskaffet | 2016 |
Årsag til afskaffelse | overtaget af F5 Networks |
Grundlæggere | Igor Vladimirovich Sysoev |
Beliggenhed | USA :San Francisco,Californien |
Industri | softwareudvikling ( ISIC :) 6201 _ |
Produkter | Nginx, Nginx Plus |
Internet side | nginx.com |
Mediefiler på Wikimedia Commons |
For at udvikle kommercielle produkter skabte Igor Sysoev Nginx i juli 2011 [35] . Udviklingen udføres på et kontor beliggende i Moskva, en amerikansk "datter" - Nginx Inc [36] blev skabt til salg . I februar 2012 begyndte virksomheden at levere betalte tjenester [37] , tre tekniske supportpakker blev introduceret - Premium, Advanced og Essential, inden for hvilke abonnenter modtog installation, ydelsesjustering, konfiguration, vedligeholdelse, designassistance og endelige optimeringstjenester.
I december 2011 rejste virksomheden 3 millioner dollars fra en pulje af investorer (førende i runden var BV Capital ; medinvestorer var Runa Capital og Michael Dells MSD Capital - familiefond [36] [38] ) .
I oktober 2013 rejste virksomheden yderligere 10 millioner dollars. Den ledende investor var New Enterprise Associates ; medinvestorer var alle midlerne fra den foregående runde, såvel som Aaron Levy , leder af Box.com [39] .
Den 9. december 2014 blev der annonceret en yderligere investering på 20 millioner dollars. Runden blev ledet af New Enterprise Associates venturekapitalfonden med deltagelse af Index Ventures , Runa Capital, E.ventures (tidligere BV Capital ) og Nginx CEO Gus Robertson [40] [41] [42] .
Den 11. marts 2019 annoncerede F5 Networks [43] købet af Nginx for $670 millioner, handlen blev afsluttet den 9. maj 2019 [44] [45] .
Den 12. december 2019 blev det kendt, at Rambler-selskabet (hvoraf 46,5 % ejes af Sberbank of Russia [46] ) hævdede eksklusive rettigheder til nginx-kildekoden, nogle medier rapporterede om en søgning på Nginx-kontoret og en straffesag efter art. 146 i Den Russiske Føderations straffelov (Krænkelse af ophavsret og beslægtede rettigheder) [47] [48] [49] [50] . Den 18. maj 2020 blev sagen afvist i henhold til paragraf 1 i del 1 i artikel 24 i Den Russiske Føderations strafferetsplejelov (fravær af en forbrydelse) [51] [52] [53] .
Den 18. januar 2022 blev det annonceret, at Igor Sysoev forlod Nginx og F5 [54] .
Webservere | |
---|---|
ASP.NET |
|
C | |
Erlang | |
Java | |
Gedde |
|
Python | |
rubin |
I sociale netværk | |
---|---|
Tematiske steder |