Ukukhishwa kwe-nginx 1.19.7, njs 0.5.1 kanye neyunithi ye-NGINX 1.22.0

Igatsha eliyinhloko le-nginx 1.19.7 likhishiwe, lapho ukuthuthukiswa kwezici ezintsha kuqhubeka (egatsheni elizinzile elisekelwa ngokufana 1.18, izinguquko ezihlobene kuphela nokuqedwa kwamaphutha angathi sína kanye nokuba sengozini kwenziwa).

Izinguquko eziyinhloko:

  • Lapho inqubo yesisebenzi iphelelwa ukuxhumeka kwamahhala, i-nginx manje ayivali nje kuphela ukuxhumana kwe-keepalive, kodwa futhi nokuxhuma okulinde isokhethi ukuvala (“ukuvala ukuvala”).
  • Ikhodi yokucubungula uxhumano ku-HTTP/2 iseduze nokuqaliswa kwe-HTTP/1.x. Usekelo lwezilungiselelo ezingazodwana "http2_recv_timeout", "http2_idle_timeout" kanye ne-"http2_max_requests" kunqanyuliwe kuvumela iziqondiso ezijwayelekile "keepalive_timeout" kanye "nezicelo_zokugcina".
  • Izilungiselelo "http2_max_field_size" kanye "http2_max_header_size" zikhishiwe futhi "large_client_header_buffers" kufanele zisetshenziswe esikhundleni salokho.

Ngesikhathi esifanayo, i-njs 0.5.1 yakhululwa, umhumushi we-JavaScript weseva yewebhu ye-nginx. Umhumushi we-njs usebenzisa amazinga e-ECMAScript futhi ikuvumela ukuthi unwebe ikhono le-nginx lokucubungula izicelo usebenzisa imibhalo ekucushweni. Imibhalo ingasetshenziswa efayeleni lokumisa ukuchaza ingqondo ethuthukile yokucubungula izicelo, ukukhiqiza ukuhlela, ukukhiqiza impendulo enamandla, ukuguqula isicelo/impendulo, noma ukudala ngokushesha ama-stubs ukuxazulula izinkinga kuzinhlelo zokusebenza zewebhu.

Inguqulo entsha yengeza isiyalelo esithi “js_header_filter”, esikuvumela ukuthi usethe umsebenzi we-JavaScript ukuze uhlunge futhi uguqule izihloko zempendulo engafanele: js_import foo.js; indawo / {js_header_filter foo.filter; ummeleli_pass http://127.0.0.1:8081/; } foo.js: isihlungi somsebenzi(r) { var cookies = r.headersOut[‘Set-Cookie’]; var len = r.args.len ? Inombolo(r.args.len) : 0; r.headersOut[‘Set-Cookie’] = cookies.filter(v=>v.length > len); } thekelisa okuzenzakalelayo {filtha};

Okunye okungeziwe yindlela ye-ngx.fetch() esebenzisa i-API Yokulanda, ehlinzeka ngokusebenza kweklayenti le-HTTP. Indlela isekela ukucutshungulwa komzimba, izihloko, i-buffer_size kanye nezinketho zosayizi_we-max_response_body_body. Into ethi Impendulo ebuyisiwe isekela i-arrayBuffer(), bodyUsed, json(), izihloko, kulungile, qondisa kabusha, isimo, isimoUmbhalo, umbhalo(), uhlobo kanye nezindlela ze-url, kanye nento ethi Header isekela get(), getAll() futhi ine() izindlela . umsebenzi wokulanda(r) {ngx.fetch('http://nginx.org/') .bese(phendula => phendula.umbhalo()) .bese(umzimba => r.return(200, umzimba)) .catch (e => r.return(501, e.message)); }

Ungase futhi uqaphele ukushicilelwa kweseva yesicelo se-NGINX Unit 1.22, enikeza isixazululo sokusebenzisa izinhlelo zokusebenza zewebhu ngezilimi ezihlukahlukene zokuhlela (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js kanye neJava). Iyunithi ye-NGINX ingasebenzisa ngesikhathi esisodwa izinhlelo zokusebenza eziningi ngezilimi ezahlukene zokuhlela, imingcele yokuqalisa engashintshwa ngamandla ngaphandle kwesidingo sokuhlela amafayela wokumisa bese uqala kabusha. Ikhodi ibhalwe ngo-C futhi isatshalaliswa ngaphansi kwelayisensi ye-Apache 2.0.

Ukukhishwa okusha kweyunithi ye-NGINX kugxile ekuthuthukiseni ukuzinza, ukwandisa amathuluzi okuhlola, nokulungisa iziphazamisi. Kumaphakheji enzelwe i-Linux, umsebenzisi neqembu i-NGINX Unit esebenza ngaphansi kwayo ishintshiwe. Esikhundleni sokungabi namuntu:akekho, izinqubo manje zisebenza ngaphansi kweyunithi yomsebenzisi ngamunye kuyunithi yeqembu. Ukuqinisekisa ukuhambisana ne-Stream API yezinto ze-ServerRequest kanye ne-ServerResponse kusuka kumojula ye-Node.js. Inketho "yendlela" yezinhlelo zokusebenza zePython ivumela izinkomba eziningi ukuthi zicaciswe.

Source: opennet.ru

Engeza amazwana