nginx 1.19.7 හි ප්රධාන ශාඛාව නිකුත් කර ඇති අතර, එහි නව විශේෂාංග සංවර්ධනය අඛණ්ඩව සිදු වේ (සමාන්තර සහාය දක්වන ස්ථාවර ශාඛාව 1.18 හි, බරපතල දෝෂ සහ අවදානම් ඉවත් කිරීමට අදාළ වෙනස්කම් පමණක් සිදු කරනු ලැබේ).
ප්රධාන වෙනස්කම්:
- සේවක ක්රියාවලියක නිදහස් සම්බන්ධතා අවසන් වූ විට, nginx දැන් Keepalive සම්බන්ධතා පමණක් නොව, කල් පවතින සමීප තත්වයේ සම්බන්ධතා ද වසා දමයි.
- HTTP/2 සම්බන්ධතා හැසිරවීමේ කේතය HTTP/1.x ක්රියාත්මක කිරීමට සමීප කර ඇත. "http2_recv_timeout", "http2_idle_timeout" සහ "http2_max_requests" යන තනි සැකසුම් සඳහා සහාය "keepalive_timeout" සහ "keepalive_requests" යන සාමාන්ය නියෝගවලට පක්ෂව නතර කර ඇත.
- "http2_max_field_size" සහ "http2_max_header_size" සැකසුම් ඉවත් කර ඇති අතර, ඒ වෙනුවට "large_client_header_buffers" භාවිතා කළ යුතුය.
ඒ සමඟම, njs 0.5.1, JavaScript පරිවර්තකයක් සඳහා වෙබ් සේවාදායකය nginx. njs පරිවර්තකය ECMAScript ප්රමිතීන් ක්රියාත්මක කරන අතර වින්යාස ස්ක්රිප්ට් භාවිතයෙන් nginx හි ඉල්ලීම් සැකසුම් හැකියාවන් පුළුල් කිරීමට ඔබට ඉඩ සලසයි. උසස් ඉල්ලීම් සැකසුම් තර්කනය නිර්වචනය කිරීමට, වින්යාසයන් ජනනය කිරීමට, ගතිකව ප්රතිචාර ජනනය කිරීමට, ඉල්ලීම්/ප්රතිචාර වෙනස් කිරීමට හෝ වෙබ් යෙදුම්වල ගැටළු විසඳීම සඳහා ඉක්මනින් ස්ටබ් නිර්මාණය කිරීමට වින්යාස ගොනුවේ ස්ක්රිප්ට් භාවිතා කළ හැක.
නව අනුවාදය "js_header_filter" විධානය එක් කරයි, එය ඔබට අත්තනෝමතික ප්රතිචාර ශීර්ෂ පෙරහන් කිරීම සහ වෙනස් කිරීම සඳහා JavaScript ශ්රිතයක් නියම කිරීමට ඉඩ සලසයි: js_import foo.js; location / { js_header_filter foo.filter; proxy_pass http://127.0.0.1:8081/; } foo.js: function filter(r) { var cookies = r.headersOut['Set-Cookie']; var len = r.args.len ? Number(r.args.len) : 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } export default {filter};
ngx.fetch() ක්රමය ද එකතු කර ඇති අතර, එය HTTP සේවාදායක ක්රියාකාරිත්වය සපයයි. මෙම ක්රමය ශරීරය, ශීර්ෂයන්, buffer_size සහ max_response_body_size විකල්ප සඳහා සහය දක්වයි. ආපසු ලබා දුන් ප්රතිචාර වස්තුව arrayBuffer(), bodyUsed, json(), ශීර්ෂයන්, ok, redirect, status, statusText, text(), type, සහ url ක්රම සඳහා සහය දක්වයි, සහ ශීර්ෂ වස්තුව get(), getAll(), සහ has() ක්රම සඳහා සහය දක්වයි. function fetch(r) { ngx.fetch('http://nginx.org/') .then(reply => reply.text()) .then(body => r.return(200, body)) .catch(e => r.return(501, e.message)); }
ඔබට ප්රකාශනය සලකුණු කිරීමටද හැකිය සේවාදායකය NGINX ඒකකය 1.22, විවිධ ක්රමලේඛන භාෂාවලින් (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js, සහ Java) ලියා ඇති වෙබ් යෙදුම් ක්රියාත්මක කිරීම සඳහා විසඳුමක්. NGINX ඒකකයට විවිධ භාෂාවලින් ලියා ඇති බහු යෙදුම් එකවර ක්රියාත්මක කළ හැකි අතර, ඒවායේ දියත් කිරීමේ පරාමිතීන් වින්යාස ගොනු සංස්කරණය කිරීම හෝ නැවත ආරම්භ කිරීමකින් තොරව ගතිකව වෙනස් කළ හැකිය. කේතය C භාෂාවෙන් ලියා ඇති අතර Apache 2.0 බලපත්රය යටතේ බලපත්ර ලබා ඇත.
නව NGINX ඒකක නිකුතුව ස්ථාවරත්වය වැඩි දියුණු කිරීම, පරීක්ෂණ හැකියාවන් පුළුල් කිරීම සහ දෝෂ නිවැරදි කිරීම කෙරෙහි අවධානය යොමු කළේය. Linux NGINX ඒකකය පැකේජවල ක්රියාත්මක වන පරිශීලකයා සහ කණ්ඩායම වෙනස් කර ඇත. nobody:nobody වෙනුවට, ක්රියාවලි දැන් ඒකක කණ්ඩායමේ වෙනම පරිශීලක නාමයක් සහිත ඒකකයක් යටතේ ක්රියාත්මක වේ. Node.js මොඩියුලයෙන් ServerRequest සහ ServerResponse වස්තු සඳහා Stream API සමඟ අනුකූලතාව සහතික කර ඇත. Python යෙදුම් සඳහා "path" විකල්පය තුළ දැන් බහු නාමාවලි නියම කළ හැක.
මූලාශ්රය: opennet.ru
