nginx 1.19.7، njs 0.5.1 اور NGINX یونٹ 1.22.0 کی ریلیز

nginx 1.19.7 کی مرکزی شاخ جاری کی گئی ہے، جس کے اندر نئی خصوصیات کی ترقی جاری ہے (متوازی معاون مستحکم برانچ 1.18 میں، صرف سنگین غلطیوں اور کمزوریوں کے خاتمے سے متعلق تبدیلیاں کی جاتی ہیں)۔

اہم تبدیلیاں:

  • جب ایک کارکن کا عمل مفت کنکشن ختم ہو جاتا ہے، nginx اب نہ صرف زندہ کنکشن کو بند کر دیتا ہے، بلکہ وہ کنکشن بھی جو ساکٹ کے بند ہونے کا انتظار کر رہے ہوتے ہیں ("لنگرنگ کلوز")۔
  • 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 جاری کیا گیا، جو nginx ویب سرور کے لیے جاوا اسکرپٹ کا ترجمان ہے۔ njs مترجم ECMAScript معیارات کو لاگو کرتا ہے اور آپ کو ترتیب میں اسکرپٹس کا استعمال کرتے ہوئے درخواستوں پر کارروائی کرنے کے لیے nginx کی صلاحیت کو بڑھانے کی اجازت دیتا ہے۔ اسکرپٹس کو کنفیگریشن فائل میں درخواستوں پر کارروائی کرنے، کنفیگریشن تیار کرنے، متحرک طور پر ردعمل پیدا کرنے، درخواست/جواب میں ترمیم کرنے، یا ویب ایپلیکیشنز میں مسائل کو حل کرنے کے لیے فوری طور پر اسٹبس بنانے کے لیے استعمال کیا جا سکتا ہے۔

نئے ورژن میں "js_header_filter" ہدایت شامل کی گئی ہے، جو آپ کو صوابدیدی ردعمل ہیڈر کو فلٹر کرنے اور تبدیل کرنے کے لیے JavaScript فنکشن سیٹ کرنے کی اجازت دیتا ہے: js_import foo.js; مقام / { js_header_filter foo.filter؛ proxy_pass http://127.0.0.1:8081/; } foo.js: فنکشن فلٹر(r) { var کوکیز = r.headersOut['Set-Cookie']؛ var len = r.args.len ? نمبر(r.args.len): 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len)؛ } ڈیفالٹ برآمد کریں {filter};

ngx.fetch() طریقہ بھی شامل کیا گیا ہے، جو Fetch API کو نافذ کرتا ہے، جو HTTP کلائنٹ کی فعالیت فراہم کرتا ہے۔ یہ طریقہ باڈی، ہیڈرز، بفر_سائز اور max_response_body_size آپشنز کی پروسیسنگ کی حمایت کرتا ہے۔ واپس آنے والا رسپانس آبجیکٹ arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type اور url طریقوں کو سپورٹ کرتا ہے اور Header آبجیکٹ get(), getAll() اور has() کو سپورٹ کرتا ہے۔ طریقے فنکشن بازیافت کریں (e => r.return(200, e.message))؛ }

آپ NGINX یونٹ 1.22 ایپلیکیشن سرور کی اشاعت کو بھی نوٹ کر سکتے ہیں، جو مختلف پروگرامنگ زبانوں (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js اور Java) میں ویب ایپلیکیشن چلانے کا حل پیش کرتا ہے۔ NGINX یونٹ بیک وقت مختلف پروگرامنگ زبانوں میں متعدد ایپلیکیشنز چلا سکتا ہے، جن کے لانچ پیرامیٹرز کو کنفیگریشن فائلوں میں ترمیم کرنے اور دوبارہ شروع کرنے کی ضرورت کے بغیر متحرک طور پر تبدیل کیا جا سکتا ہے۔ کوڈ C میں لکھا گیا ہے اور اپاچی 2.0 لائسنس کے تحت تقسیم کیا گیا ہے۔

NGINX یونٹ کی نئی ریلیز استحکام کو بہتر بنانے، ٹیسٹنگ ٹولز کو پھیلانے، اور کیڑے ٹھیک کرنے پر مرکوز ہے۔ لینکس کے لیے تیار کردہ پیکیجز میں، صارف اور گروپ جس کے تحت NGINX یونٹ چلتا ہے تبدیل کر دیا گیا ہے۔ nobody:nobody کے بجائے، عمل اب یونٹ گروپ میں انفرادی صارف یونٹ کے تحت چلتے ہیں۔ Node.js ماڈیول سے ServerRequest اور ServerResponse آبجیکٹ کے Stream API کے ساتھ مطابقت کو یقینی بنایا۔ Python ایپلیکیشنز کے لیے "path" کا اختیار متعدد ڈائریکٹریوں کو متعین کرنے کی اجازت دیتا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں