nginx (variklis x) yra atvirojo kodo, vieno žmogaus proxy serveris ir pašto serveris bei didelio našumo ir lengvojo tinklo (HTTP) serveris Linux, BSD ir Windows Operacinės sistemos. Jo kūrėjas jį apibūdina kaip misiją teikiančios aplinkos pliusą.
Savybės iš pirmo žvilgsnio
Pagrindiniai svarbiausi dalykai yra pagreitintas atvirkštinis keitimas su spartinimu, spartintu palaikymu naudojant SCGI, FastCGI, uwsgi ir memcached serverių, modulinės architektūros, taip pat TLS SNI ir SSL palaikymo spartą.
pašto proxy serveris palaiko SSL (Secure Sockets Layer), STLS, STARTTLS užkoduotus protokolus, keletą IMAP, POP3 ir SMTP autentifikavimo metodų, naudotojo peradresavimą į POP3 ar IMAP serverius, taip pat vartotojo autentifikavimą ir ryšio peradresavimą . Be kitų įdomių funkcijų, galime paminėti paramą "kqueue", "sendfile", "AIO" failui, "DIRECTIO", priėmimo filtrai ir daug, daug daugiau.
Tuo pačiu metu jis gali apdoroti daugybę SSI įtraukimų viename tinklalapyje, jei juos "reguliuoja FastCGI" arba "proxy serveriai". Be to, HTTP serverio programos dalis palaiko HTTP refererio, MP4 ir FLV srautinio perdavimo, įterpto Perl, ribojimo atsako dažnumo, peradresavimo 3xx-5xx klaidų kodams, taip pat palaikomųjų konvejerių ir nuolatinių jungčių palaikymą.
Serveriai ir indekso, ir statiniai failai
Programinė įranga gali būti tiek indekso, tiek statinių rinkmenų, teikia vartotojams kaltės toleranciją ir paprastą apkrovos balansavimą, įvairius filtrus, pvz., XSLT, gzipping, SSI, vaizdų transformaciją, sugadintus atsakymus ir baitų intervalus.
Kadangi tai suteikia lengvą, logišką ir lanksčią konfigūraciją, kelios gerai žinomos svetainės naudoja "nginx" programinę įrangą, kad savo vartotojams pateiktų aukštos kokybės ir unikalią informaciją. Tarp jų galime paminėti "Wordpress.com", "Netflix" ir "FastMail.FM".
Palaikomos operacinės sistemos
Šiuo metu nginx buvo sėkmingai išbandytas naudojant Linux 2.2-3 (32 bitų), Linux 2.6-3 (64 bitų), FreeBSD 3-10 (32 bitų), FreeBSD 5-10 (64- bitų), "Solaris 9" (32 bitų), Solaris 10 (32 bitų ir 64 bitų), AIX 7.1 ("PowerPC"), "HP-UX 11.31" (IA64), "Mac OS X" ("PowerPC" ir 32 bitų), "Windows XP" ir "Windows Server 2003".
Kas naujo šiame leidime?
- "nginx-1.12.0" buvo išleista stabili versija, įtraukiant naujas funkcijas ir klaidų iš 1,11 .x pagrindinis filialas, įskaitant kintamųjų palaikymą ir kitus srauto modulio patobulinimus, HTTP / 2 pataisymus, įvairių tipų įvairių SSL sertifikatų palaikymą, patobulintus dinaminių modulių palaikymą ir dar daugiau.
- "nginx-1.12.0" buvo išleista stabili versija, įtraukiant naują 1.11.x pagrindinės linijos filialai - įskaitant kintamųjų palaikymą ir kitus srauto modulio patobulinimus, HTTP / 2 pataisymus, įvairių tipų SSL sertifikatų palaikymą, patobulintus dinaminių modulių palaikymą ir dar daugiau.
- Apsauga: netinkamas rodyklės panaikinimas gali atsirasti DNS serverio atsakymo apdorojimo metu, jei "resolver" & quot; buvo naudojama direktyva, leidžianti užpuolikas, kuris gali suklastoti UDP paketus iš DNS serverio, kad sukeltų segmentacijos kaltę darbuotojo procese (CVE-2016-0742).
- Sauga: CNAME atsakymo apdorojimo metu gali atsirasti galimybė naudoti "free-free-free", jei "resolver" & quot; buvo naudojama direktyva, leidžianti užpuolikui, galinčiam sukelti vardų skiriamąją gebą, sukelti segmentacijos kaltę darbuotojo procese arba turėti galimą kitą poveikį (CVE-2016-0746).
- Apsauga: CNAME skiriamoji geba nebuvo pakankamai ribota, jei "resolver" & quot; buvo naudojama direktyva, leidžianti užpuolikas, kuris gali sukelti savavališką pavadinimo rezoliuciją, sukelti perteklinį išteklių suvartojimą darbuotojų procesuose (CVE-2016-0747).
- Bugfix: "proxy_protocol" & quot; parametras "klausytis" direktyva neveikia, jei nenurodyta pirmojoje "klausytis" "Klausymo lizdo" direktyva.
- Klaida: "nginx" gali nepavykti paleisti kai kurių senų "Linux" variantų; klaida pasirodė 1.7.11.
- Bugfix: segmentavimo klaida gali įvykti darbuotojo procese, jei "try_files" & quot; ir "slapyvardis" direktyvos buvo naudojamos reguliariosios išraiškos vietoje; klaida pasirodė 1.7.1.
- Bugfix: & quot; try_files & quot; taisyklė, esanti įdėta vieta, pateikta reguliaraus išraiškos būdu, dirbo netinkamai, jei "slapyvardis" direktyva buvo naudojama išorinėje vietoje.
- Bugfix: & quot; antraštė jau išsiųsta & quot; įspėjimai gali būti rodomi naudojant talpyklą; klaida pasirodė 1.7.5.
- Bugfix: segmentavimo klaida gali atsirasti darbuotojo procese, jei skirtinguose virtualiuose serveriuose buvo naudojami skirtingi ssl_session_cache nustatymai.
- Bugfix: "expiration" & quot; expires & quot; Naudojant kintamuosius, direktyva gali neveikti.
- Klaida: jei nginx buvo sukurtas naudojant ngx_http_spdy_module, tai galėjo naudoti SPDY protokolą, net jei "spdy" parametras "klausytis" direktyva nebuvo nurodyta.
- Įtraukta daug naujų funkcijų iš 1.7.x pagrindinės linijos filialas, įskaitant maišos apkrovos balansavimo metodą, "backend" SSL sertifikato patvirtinimą, eksperimentinių thread pools palaikymą, proxy_request_buffering ir dar daugiau.
- Pakeisti: dabar "If-Modified-Since", "If-Range" ir kt. kliento užklausos antraštės linijos perduodamos į "backend", o talpykloje spustelėkite, jei nginx iš anksto žino, kad atsakymas nebus išsaugotas talpykloje (pvz., naudojant proxy_cache_min_uses).
- Pakeisti: dabar po proxy_cache_lock_timeout nginx siunčia užklausą backend, su išvalymu išjungta; naujos direktyvos "proxy_cache_lock_age", "fastcgi_cache_lock_age", "scgi_cache_lock_age" ir "uwsgi_cache_lock_age" nurodykite laiką, po kurio užraktas bus paleistas, ir dar kartą bus bandoma išsaugoti atsakymą.
- Keisti: & quot; log_format & quot; Ši direktyva dabar gali būti naudojama tik http lygmeniu.
- Funkcija: "proxy_ssl_certificate", "proxy_ssl_certificate_key", "proxy_ssl_password_file", "uwsgi_ssl_certificate", "uwsgi_ssl_certificate_key", "uwsgi_ssl_password_file" & quot ;, & quot; proxy_ssl_certificate_key & quot ;, & quot; direktyvomis. Dėkui Piotrui Sikorai.
- Funkcija: dabar galite persijungti į nurodytą vietą naudodami "X-Accel-Redirect". Dėkojame Toshikuni Fukaya.
- Funkcija: dabar "tcp_nodelay" & quot; Direktyva veikia su SPDY jungtimis.
- Funkcija: naujos direktyvos vim sintaksės aukšto lygio scenarijose. Dėkojame Peteriui Wui.
- Klaida: "nginx" ignoravo "s-maxage" vertė "Cache-Control" atgalinės atsakomosios antraštės eilutė. Dėkui Piotrui Sikorai.
- Bugfix: ngx_http_spdy_module. Dėkui Piotrui Sikorai.
- Bugfix: "ssl_password_file" & quot; naudojant OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j.
- Bugfix: įspėjimai & quot; antraštė jau išsiųsta & quot; pasirodė žurnaluose, jei "post_action" & quot; direktyva buvo taikoma; klaida pasirodė 1.5.4.
- "Bugfix: perspėjimai" http išvedimo grandinė yra tuščia & quot; gali būti rodomi, jei "atidėti išeiti 0" Direktyva buvo naudojama kartu su SSI.
- Bugfix: "proxy_cache_lock" & quot; Direktyva su SSI paprogramėmis. Dėkojame Yichunui Zhangui.
- Saugumas: SSL seansus buvo galima pakartotinai naudoti nesusijusiuose kontekstuose, jei bendrai SSL seanso talpyklos arba tos pačios TLS seanso bilieto raktas buvo naudojamas keliems "serveriams" blokai (CVE-2014-3616). Dėkojame Antoine Delignat-Lavaud.
- Klaida: užklausos gali pakabinti, jei buvo naudojamas resolveris, o DNS serveris grąžino netinkamą atsakymą; klaida pasirodė 1.5.8.
- Bugfix: užklausos gali pakabinti, jei buvo naudojamas resolveris, o DNS užklausos metu įvyko laikas.
- Sauga: komandinės komandos nebuvo išmestos po STARTTLS komandos SMTP proxy (CVE-2014-3556); klaida pasirodė 1.5.6. Dėkojame Chrisui Boultonui.
- Bugfix: $ uri kintamasis gali būti šiukšlių, grąžinant klaidas su kodu 400. Dėkui Sergeiui Bobrovui.
- Bugfix: "none" & quot; parametras "smtp_auth" & quot; direktyva; klaida pasirodė 1.5.6. Dėkojame Svyatoslavui Nikolskiui.
- Šioje stabilioje versijoje yra daug naujų funkcijų iš 1.5.x pagrindinės šakos - įskaitant įvairius SSL patobulinimus, SPDY 3.1 palaikymą, talpyklos pakartotinį patvirtinimą su sąlyginiais užklausimais, auth prašymo modulį ir dar daugiau.
- Apsauga: dirbant su specialiai parengtu ngx_http_spdy_module užklausa, galinčia sukelti savavališko kodo vykdymą (CVE-2014-0133). Dėkoju Lucas Molas, "Programa STIC" mokslininkas, "Fundacion" dr. Manuelis Sadosky, Buenos Airės, Argentina.
- Bugfix: "fastcgi_next_upstream" & quot; direktyva. Dėkojame Lucasui Molasui.
- Bugfix: "client_max_body_size"
- Bugfix: segmentavimo klaida gali atsirasti darbuotojo procese, kai leidžiamas "WebSocket" jungtis.
- Bugfix: $ ssl_session_id kintamasis buvo visiškai serijinis seansas, o ne sesijos id. Ačiū Ivanui Ristam.
- Bugfix: kliento prisijungimai gali būti nedelsiant uždaryti, jei buvo naudojamas atidėtas patvirtinimas; klaida pasirodė 1.3.15.
- Bugfix: įspėjimai & null; dydis buf į išvesties " gali būti rodomas žurnaluose, o tarpinis; klaida pasirodė 1.3.9.
- Klaida: segmentavimo klaida gali atsirasti darbuotojo procese, jei buvo naudojamas ngx_http_spdy_modulis.
- "Bugfix": "proxy" "WebSocket" jungtys gali pakabinti iškart po rankos judėjimo, jei buvo naudojami "select", poll, or / dev / poll metodai.
- "Klaida": gali pasitaikyti laiko nutrūkimas, skaitant kliento užklausos kūną naudojant SSL ryšį, naudojant koduotą perkėlimo kodą.
- Bugfix: atminties nutekėjimas nginx / Windows.
- "Google Security Team" (CVE-2013-4547) Ivanas Fratricas atrado nginx 0.8.41 - 1.5.6 pažeidžiamumą.
- Apsauga: sukrėtimų buferinis perpildymas gali atsirasti darbuotojo procese, kai atliekamas specialiai sukurtas užklausimas, dėl kurio gali būti vykdomas savavališkas kodo vykdymas (CVE-2013-2028); klaida pasirodė 1.3.9. Dėkojame Greg MacManus, "iSight Partners Labs".
Kas naujo versijoje 1.8.1:
Kas naujo versijoje 1.8.0:
Kas naujo 1.7.8 versijoje:
Kas naujo 1.6.2 versijoje:
Kas naujo 1.6.1 versijoje:
Kas naujo 1.6.0 versijoje:
Kas naujo 1.4.7 versijoje:
Kas naujo 1.4.6 versijoje? direktyva gali neveikti skaitydami užklausos įstaigą, naudojant šnipuojamą perdavimo kodavimą; klaida pasirodė 1.3.9. Dėkojame Lucasui Molasui.
Kas naujo 1.4.5 versijoje:
Kas naujo 1.4.4 versijoje:
Kas naujo versijoje 1.5.0:
Komentarai nerastas