close

Nginx

Gå till navigering Gå till sök

Nginx
Nginx-programmets logotyp
nginx logotyp
Sorts webbserver och proxyserver
Författare Igor Vladimirovich Sysoev
Utvecklaren NGINX Inc. [d] ochIgor Vladimirovich Sysoev
Skrivet i C [5]
Operativ system Unix-liknande operativsystem och Microsoft Windows
Första upplagan 4 oktober 2004 [1]
senaste versionen
Testversion
Läsbara filformat PEM-kodat certifikat [d] [6], PEM-kodat RSA privat nyckel [d] [6]och Nginx-webbplatser tillgängliga [d]
Licens 2-klausul BSD-licens [7] [8]
Hemsida nginx.org _ 
 Mediafiler på Wikimedia Commons

Nginx (e ngin e x  - på ryska uttalas det som enginx eller engin-x [9][Komm 1] ) är en webbserver och e -postproxyserver som körs på Unix -liknande operativsystem (testad montering och drift på FreeBSD , OpenBSD , Linux , Solaris , macOS , AIX och HP-UX ). Från och med version 0.7.52 har en experimentell binär version för Microsoft Windows [10] dykt upp .

Igor Sysoev startade utvecklingen 2002 [11] . Hösten 2004 släpptes den första offentligt tillgängliga utgåvan. Sedan juli 2011 har arbetet med nginx pågått inom Nginx-företaget.Gå till avsnittet "#Nginx Company"

Huvudfunktioner

Nginx positioneras av tillverkaren som en enkel, snabb och pålitlig server som inte är överbelastad med funktioner.

Att använda nginx är bäst för statiska webbplatser och som en omvänd proxy för dynamiska webbplatser .

HTTP-server

  • underhåll av oföränderliga frågor, indexfiler, automatisk fillistning, öppen filbeskrivningscache
  • accelererad proxy utan cachning, enkel lastbalansering och feltolerans
  • cachingstöd för accelererad proxy och FastCGI
  • accelererat stöd för FastCGI och memcachade servrar, enkel lastbalansering och feltolerans
  • modularitet, filter, inklusive komprimering ( gzip ), byte-intervall (resume), chunked svar, HTTP- autentisering , SSI - filter
  • flera underförfrågningar på samma sida, bearbetade i SSI-filtret genom en proxy eller FastCGI, exekveras parallellt
  • SSL- stöd
  • PSGI , WSGI- stöd
  • experimentellt stöd för inline Perl

SMTP/IMAP/POP3 proxyserver

  • omdirigerar användaren till SMTP / IMAP / POP3 backend med hjälp av en extern HTTP -autentiseringsserver
  • enkel autentisering (LOGGA IN, ANVÄNDARE/PASS)
  • Stöd för SSL och STARTTLS

Arkitektur

I nginx betjänar arbetsprocesser många anslutningar samtidigt och multiplexerar dem med val, epoll ( Linux ) och kqueue ( FreeBSD ) operativsystemanrop. Arbetarprocesser utför en händelseslinga från handtag (se händelsedriven programmering ). Data som tas emot från klienten analyseras med hjälp av en tillståndsmaskin . Den analyserade begäran behandlas sekventiellt av kedjan av moduler som specificeras av konfigurationen. Svaret till klienten bildas i buffertar som lagrar data antingen i minnet eller pekar på ett filsegment. Buffertar kombineras till kedjor som bestämmer i vilken sekvens data ska överföras till klienten. Om operativsystemet stöder effektiva I/O-operationer som writev och sendfile , så använder nginx dem när det är möjligt.

Algoritmen för HTTP-servern är som följer [12] :

  1. få nästa handtag från kevent(2) ;
  2. läs data från fil och skriv till socket med antingen write(2) / read(2) , så här [Comm 2] :
medan
(
   (
      cnt = läs  
      (
         read_file_descriptor ,
         buffert ,
         block storlek
      ),
      skriva
      (
         socket_file_descriptor ,
         buffert ,
         räkna
      ) == cnt  
   )
)
   byte_count += count ;  
antingen genom att använda systemanropet sendfile(2) , som gör samma sak som koden ovan, men i kärnutrymmet;
  1. gå till steg 1.

nginx HTTP- serverkonfigurationen är uppdelad i virtuella servrar ("serverdirektivet"). Virtuella servrar är indelade i platser ("plats"). För en virtuell server är det möjligt att ställa in adresser och portar på vilka anslutningar kommer att accepteras, samt namn som kan inkludera "*" för att indikera en godtycklig sekvens i den första och sista delen, eller specificeras av ett reguljärt uttryck.

platser kan specificeras av den exakta URI :n , en del av URI :n eller av ett reguljärt uttryck . Platser kan konfigureras för att betjäna förfrågningar från en statisk fil, med proxy till en fastcgi/memcachad server.

För effektiv minneshantering använder nginx pooler . En pool  är en sekvens av förallokerade block av dynamiskt minne. Blocklängden varierar från 1 till 16 kilobyte. Inledningsvis är endast ett kvarter avsatt för poolen. Kvarteret är uppdelat i ett ockuperat område och ett ockuperat område. Valet av små objekt utförs genom att flytta pekaren till ett ledigt område, med hänsyn till inriktningen. Om den lediga ytan i alla block inte räcker för att allokera ett nytt objekt, tilldelas ett nytt block. Om storleken på det allokerade objektet överstiger värdet på konstanten NGX_MAX_ALLOC_FROM_POOL eller längden på blocket, tilldelas det fullständigt från högen.

Sålunda tilldelas små objekt mycket snabbt och har bara överkostnaderna för justering .

nginx innehåller en modul för geografisk klassificering av klienter efter IP-adress . Den är baserad på en databas med överensstämmelse mellan IP-adresser till en geografisk region, representerad som ett radixträd (komprimerat prefixträd eller komprimerad skog) i RAM . nginx förallokerar de första nivåerna i trädet så att de tar upp exakt 1 sida i minnet. Detta säkerställer att när du letar upp en IP-adress för de första noderna i adressöversättning, kommer det alltid att finnas en post i TLB .

Popularitet

Från och med augusti 2020 överstiger antalet sajter som betjänas av nginx 448 miljoner , enligt Netcraft , vilket gör den till världens första mest populära webbserver . Andelen bland aktiva sajter är 19,74% , vilket placerar nginx på andra plats efter Apache -webbservern [13] .

Enligt W3Techs är nginx vanligast på webbplatser med hög belastning [14] , och rankas först när det gäller användningsfrekvens bland de 100 000 mest besökta webbplatserna i världen - mer än en tredjedel av dem körs på nginx.

Enligt den ryska registratorn REG.RU är nginx den mest populära webbservern för domänzonerna .ru [15] , .rf [16] och .su [17] och betjänar mer än hälften av varje segment.

NGINX är den mest populära webbservern i Ryssland med en marknadsandel på 65,90 % [18] .

Bland de välkända projekten som använder 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 och många andra [13] .

Nginx-företag

Nginx Inc.
Logo bild
Sorts privat företag
Bas 2011
avskaffas 2016
Anledning till avskaffande övertas av F5 Networks
Grundare Igor Vladimirovich Sysoev
Plats Image USA :San Francisco,Kalifornien
Industri mjukvaruutveckling ( ISIC :) 6201 _
Produkter Nginx, Nginx Plus
Hemsida nginx.com
 Mediafiler på Wikimedia Commons

För att utveckla kommersiella produkter skapade Igor Sysoev Nginx i juli 2011 [35] . Utvecklingen utförs på ett kontor beläget i Moskva, en amerikansk "dotter" - Nginx Inc [36] skapades för försäljning . I februari 2012 började företaget tillhandahålla betaltjänster [37] , tre tekniska supportpaket introducerades - Premium, Advanced och Essential, inom vilka abonnenter fick installation, prestandajustering, konfiguration, underhåll, designhjälp och slutliga optimeringstjänster.

I december 2011 samlade företaget in 3 miljoner dollar från en pool av investerare (ledande i omgången var BV Capital [en] ; medinvesterare var Runa Capital och Michael Dells MSD Capital - familjefond [en] [36] [38] ) .

I oktober 2013 samlade företaget in ytterligare 10 miljoner dollar. Huvudinvesteraren var New Enterprise Associates [sv] ; medinvesterare var alla fonder från föregående omgång, såväl som Aaron Levy , chef för Box.com [39] .

Den 9 december 2014 tillkännagavs en ytterligare investering på 20 miljoner dollar. Omgången leddes av riskkapitalfonden New Enterprise Associates, med deltagande av Index Ventures [en] , Runa Capital, E.ventures (tidigare BV Capital ) och Nginx VD Gus Robertson [40] [41] [42] .

Den 11 mars 2019 tillkännagav F5 Networks [43] köpet av Nginx för 670 miljoner dollar, affären slutfördes den 9 maj 2019 [44] [45] .

Den 12 december 2019 blev det känt att Rambler-företaget (varav 46,5 % ägs av Sberbank of Russia [46] ) gjorde anspråk på exklusiva rättigheter till nginx-källkoden, några medier rapporterade om en sökning på Nginx-kontoret och en brottmål enligt art. 146 i Ryska federationens strafflag (Brott mot upphovsrätt och närstående rättigheter) [47] [48] [49] [50] . Den 18 maj 2020 avskrevs ärendet enligt klausul 1 i del 1 i artikel 24 i den ryska federationens straffprocesslag (avsaknad av en brottshändelse) [51] [52] [53] .

Den 18 januari 2022 tillkännagavs att Igor Sysoev lämnade Nginx och F5 [54] .

Se även

Anteckningar

Kommentarer
  1. Bokstaven en:x på engelska heter ex /ˈɛks/
  2. FreeBSD 1.0, 1993. Funktionskod send_data()från src/libexec/ftpd/ftpd.c.
  3. Fliken "Net" från Firebug
Källor
  1. http://nginx.org/ru/CHANGES.ru
  2. nginx-1.23.2 - 2022.
  3. Dounin M. nginx-1.22.1 - 2022.
  4. Release release-1.23.1 - 2022.
  5. nginx Open Source Project på Open Hub: Languages-sidan - 2006.
  6. 1 2 Modul ngx_http_ssl_module 
  7. https://nginx.org/LICENSE
  8. nginx Open Source-projektet på Open Hub: Licenssida - 2006.
  9. Föreläsning "Comparative analysis of architectures of server Internet applications for high loads", föreläsare: Igor Sysoev Arkiverad 24 mars 2018 på Wayback Machine .
  10. https://nginx.org/ru/docs/windows.html Arkiverad 17 januari 2020 på Wayback Machine nginx för Windows
  11. http://sysoev.ru/nginx/ Arkivkopia daterad 7 januari 2006 på Wayback Machine kan du läsa: "Jag började utveckla nginx våren 2002..."
  12. Rapport arkiverad 2 april 2015 på Wayback Machine av Gleb Smirnov ([email protected]), nginx och FreeBSD -utvecklare , vid ruBSD 2014-konferensen den 13 december 2014.
  13. 1 2 december 2019 Web Server Survey Arkiverad 14 december 2019 på Wayback Machine 
  14. Användning av webbservrar uppdelad efter rankning Arkiverad 5 februari 2013.  (Engelsk)
  15. Webbservrar för .RU-zonen . Hämtad 6 februari 2014. Arkiverad från originalet 9 februari 2014.
  16. Webbservrar för .RF-zonen . Hämtad 6 mars 2014. Arkiverad från originalet 2 mars 2014.
  17. Webbservrar för .SU-zonen . Hämtad 6 mars 2014. Arkiverad från originalet 2 mars 2014.
  18. Statistik över det ryska Internet . runfo.ru Hämtad 17 maj 2017. Arkiverad från originalet 17 februari 2017.
  19. Webbteknik som används av Rambler.ru  (engelska)
  20. Webbteknik som används av Yandex.ru  (engelska)
  21. ↑ Webbteknik som används av Vk.com 
  22. Netflix - Appliance Software . Hämtad 14 februari 2018. Arkiverad från originalet 16 februari 2018.
  23. Webbteknik som används av  Instagram.com
  24. Webbteknik som används av Habrahabr.ru  (engelska)
  25. Webbteknik som används av  Livejournal.com
  26. Webbteknik som används av Avito.ru  (engelska)
  27. ↑ Webbteknik som används av Badoo.com 
  28. GET -ed http://sourceforge.net Arkiverad 8 januari 2011 på Wayback Machine | grep Server
  29. Webbteknik som används av Qiwi.com . w3techs.com. Tillträdesdatum: 20 maj 2016.
  30. Webbteknik som används av  Pinterest.com
  31. ↑ Webbteknik som används av Tumblr.com 
  32. Webbteknik som används av Superjob.ru  (engelska)
  33. ↑ Webbteknik som används av Hh.ru 
  34. Webbteknik som används av 2gis.ru  (engelska)
  35. Grundare av Nginx: Ingen borde veta om vår produkt . Vedomosti (17 mars 2019). Hämtad 14 december 2019. Arkiverad från originalet 14 december 2019.
  36. 1 2 Anastasia Golitsyna. Nginx får 3 miljoner USD i  medel . Vedomosti (11 oktober 2011). Hämtad 19 oktober 2014. Arkiverad från originalet 17 maj 2013.
  37. NGINX börjar erbjuda betaltjänster till sina kunder Arkiverad 13 mars 2012 på Wayback Machine 
  38. Natasha Starkell. Ryska Nginx samlar in 3 miljoner dollar från internationella  investerare . Techcrunch (11 oktober 2011). Datum för åtkomst: 19 oktober 2014. Arkiverad från originalet 27 oktober 2014.
  39. Frederick Lardinois. Nginx höjer $10 miljoner serie B-rundan leds av  NEA . Techcrunch (15 oktober 2013). Hämtad 19 oktober 2014. Arkiverad från originalet 20 oktober 2014.
  40. Maria Kolomychenko. Nginx har gått in i den tredje omgången . Kommersant (9 december 2014). Hämtad 9 december 2014. Arkiverad från originalet 9 december 2014.
  41. Frederick Lardinois. Nginx höjer $20 miljoner serie B1-runda för att driva internationell  expansion . Techcrunch (9 december 2014). Datum för åtkomst: 9 december 2014. Arkiverad från originalet 10 december 2014.
  42. Jordan nov. Nginx får $20 miljoner, eftersom en webbserver med öppen källkod bara är  början . Venture Beat (9 december 2014). Datum för åtkomst: 9 december 2014. Arkiverad från originalet 10 december 2014.
  43. Form 8-K . Hämtad 15 december 2019. Arkiverad från originalet 15 december 2019.
  44. F5-nätverk - F5 slutför förvärvet av NGINX . Hämtad 15 december 2019. Arkiverad från originalet 15 december 2019.
  45. NGINX är nu officiellt en del av F5-NGINX . Hämtad 15 december 2019. Arkiverad från originalet 12 december 2019.
  46. Sberbank stängde affären om att köpa 46,5 % av Rambler Group . RBC. Hämtad 14 december 2019. Arkiverad från originalet 12 december 2019.
  47. Rambler gör anspråk på Nginx . Kommersant . Hämtad 12 december 2019. Arkiverad från originalet 11 november 2020.
  48. Undersökningsåtgärder ägde rum på Nginx IT-företagets kontor . Radio Liberty (12 december 2019). Hämtad 12 december 2019. Arkiverad från originalet 12 december 2019.
  49. Sökningar i Nginx startup office, grundare fängslade. Ärendet inleddes av Alexander Mamuts företag . The Bell (12 december 2019). Hämtad 12 december 2019. Arkiverad från originalet 12 december 2019.
  50. Cimpanu, katalinska ryska polisen slår till mot NGINX Moskva-kontor  . ZDNet (12 december 2019). Hämtad 12 december 2019. Arkiverad från originalet 12 december 2019.
  51. MIA avslutar ärendet mot Nginx-grundare . RIA Novosti (7 juli 2020). Hämtad 31 december 2021. Arkiverad från originalet 11 juni 2021.
  52. Inrikesministeriet bekräftade avslutandet av brottmålet om rättigheterna till Nginx . Interfax (7 juli 2020). Hämtad 31 december 2021. Arkiverad från originalet 10 maj 2022.
  53. Inrikesministeriet meddelade att fallet om rättigheterna till Nginx avslutades . RBC (22 juni 2020). Hämtad 31 december 2021. Arkiverad från originalet 7 november 2021.
  54. Whiteley, Rob . Gör Svidaniya, Igor, och tack för NGINX  , NGINX (  18 januari 2022). Arkiverad från originalet den 19 januari 2022. Hämtad 19 januari 2022.  "vi tillkännager idag att Igor har valt att gå tillbaka från NGINX och F5 för att spendera mer tid med sina vänner och familj och för att driva personliga projekt".

Länkar