HTTP/TCP بیلنس HAProxy 2.0 کی ریلیز

شائع ہوا لوڈ بیلنس کی رہائی ہیپروکسی 2.0۔، جو آپ کو HTTP ٹریفک اور صوابدیدی TCP درخواستوں کو سرورز کے ایک گروپ کے درمیان تقسیم کرنے کی اجازت دیتا ہے، بہت سے عوامل کو مدنظر رکھتے ہوئے (مثال کے طور پر، یہ سرورز کی دستیابی کی جانچ کرتا ہے، لوڈ لیول کا اندازہ کرتا ہے، DDoS کا مقابلہ کرتا ہے) اور بنیادی ڈیٹا فلٹرنگ کرتا ہے ( مثال کے طور پر، آپ HTTP ہیڈر پارس کر سکتے ہیں، فلٹر ٹرانسمیشن غلط استفسار پیرامیٹرز، بلاک SQL اور XSS متبادل، کنٹینٹ پروسیسنگ ایجنٹس کو جوڑ سکتے ہیں)۔ HAProxy بھی کر سکتا ہے۔ درخواست دیں مائیکرو سروسز فن تعمیر پر مبنی نظاموں میں اجزاء کے تعامل کو مربوط کرنے کے لیے۔ پروجیکٹ کوڈ C اور میں لکھا گیا ہے۔ فراہم کی GPLv2 کے تحت لائسنس یافتہ۔ یہ پروجیکٹ بہت سی بڑی سائٹوں پر استعمال ہوتا ہے، بشمول Airbnb، Alibaba، GitHub، Imgur، Instagram، Reddit، StackOverflow، Tumblr، Twitter اور Vimeo۔

اہم ریلیز کی خصوصیات:

  • نیا API متعارف کرایا گیا۔ ڈیٹا پلان، جو آپ کو REST Web API کے ذریعے پرواز پر HAProxy ترتیبات کا نظم کرنے کی اجازت دیتا ہے۔ بشمول، آپ بیک اینڈ اور سرورز کو متحرک طور پر شامل اور ہٹا سکتے ہیں، ACLs بنا سکتے ہیں، درخواست کی روٹنگ کو تبدیل کر سکتے ہیں، ہینڈلر بائنڈنگ کو IP میں تبدیل کر سکتے ہیں۔
  • nbthread کی ​​ہدایت کو شامل کیا گیا، جو آپ کو ملٹی کور CPUs پر کارکردگی کو بہتر بنانے کے لیے HAProxy میں استعمال ہونے والے تھریڈز کی تعداد کو ترتیب دینے کی اجازت دیتا ہے۔ پہلے سے طے شدہ طور پر، ورکر تھریڈز کی تعداد موجودہ ماحول میں دستیاب CPU کور کے لحاظ سے منتخب کی جاتی ہے، اور کلاؤڈ ماحول میں ڈیفالٹ ایک تھریڈ ہوتا ہے۔ سخت حدیں مقرر کرنے کے لیے، اسمبلی کے اختیارات MAX_THREADS اور MAX_PROCS شامل کیے گئے ہیں، دھاگوں اور عمل کی تعداد پر بالائی حد کو محدود کرتے ہوئے؛
  • ہینڈلرز کو نیٹ ورک ایڈریس پر بائنڈنگ کرنے کے لیے بائنڈ ڈائریکٹو کا استعمال آسان بنا دیا گیا ہے۔ ترتیب دیتے وقت، عمل کے پیرامیٹرز کی وضاحت کرنے کی مزید ضرورت نہیں ہے - پہلے سے طے شدہ طور پر، کنکشنز کو دھاگوں کے درمیان تقسیم کیا جائے گا جو فعال کنکشن کی تعداد کے لحاظ سے ہے۔
  • الگ تھلگ کنٹینرز میں چلتے وقت لاگ کو ترتیب دینا آسان بنا دیا گیا ہے - لاگ کو اب stdout اور stderr کے ساتھ ساتھ کسی بھی موجودہ فائل ڈسکرپٹر کو بھیجا جا سکتا ہے (مثال کے طور پر، "log fd@1 local0")؛
  • HTX (مقامی HTTP نمائندگی) کے لیے سپورٹ بذریعہ ڈیفالٹ فعال ہوتا ہے، جس سے اعلی درجے کی خصوصیات جیسے کہ آخر سے آخر تک HTTP/2، پرت 7 دوبارہ کوششیں اور gRPC استعمال کرتے وقت توازن پیدا ہوتا ہے۔ HTX ہیڈر کو جگہ پر تبدیل نہیں کرتا ہے، لیکن ترمیم کے عمل کو ہٹانے اور فہرست کے آخر میں ایک نیا ہیڈر شامل کرنے کے عمل کو کم کرتا ہے، جو آپ کو HTTP پروٹوکول کی کسی بھی توسیعی شکل میں ہیرا پھیری کرنے کی اجازت دیتا ہے، ہیڈر کے اصل معنی کو محفوظ رکھتا ہے اور آپ کو اجازت دیتا ہے۔ HTTP/2 سے HTTP/1.1 اور اس کے برعکس ترجمہ کرتے وقت اعلی کارکردگی حاصل کرنے کے لیے؛
  • اینڈ ٹو اینڈ HTTP/2 موڈ کے لیے آفیشل سپورٹ شامل کیا گیا (HTTP/2 میں تمام مراحل کی پروسیسنگ، بشمول بیک اینڈ پر کالز، اور نہ صرف پراکسی اور کلائنٹ کے درمیان تعامل)؛
  • جی آر پی سی پروٹوکول کی دو طرفہ پراکسینگ کے لیے مکمل تعاون کو جی آر پی سی اسٹریمز کو پارس کرنے، انفرادی پیغامات کو نمایاں کرنے، لاگ میں جی آر پی سی ٹریفک کی عکاسی کرنے اور ACLs کا استعمال کرتے ہوئے پیغامات کو فلٹر کرنے کی صلاحیت کے ساتھ لاگو کیا گیا ہے۔ gRPC آپ کو مختلف پروگرامنگ زبانوں میں مائیکرو سروسز کے کام کو منظم کرنے کی اجازت دیتا ہے جو یونیورسل API کا استعمال کرتے ہوئے ایک دوسرے کے ساتھ تعامل کرتی ہیں۔ جی آر پی سی میں نیٹ ورک کمیونیکیشن کو HTTP/2 پروٹوکول کے اوپر لاگو کیا جاتا ہے اور ڈیٹا سیریلائزیشن کے لیے پروٹوکول بفرز کے استعمال پر مبنی ہے۔
  • "پرت 7 دوبارہ کوششیں" موڈ کے لئے شامل کیا گیا تعاون، جو آپ کو سافٹ ویئر کی ناکامی کی صورت میں بار بار HTTP درخواستیں بھیجنے کی اجازت دیتا ہے جو نیٹ ورک کنکشن قائم کرنے میں دشواریوں سے متعلق نہیں ہیں (مثال کے طور پر، اگر کوئی جواب نہیں ہے یا خالی جواب ہے درخواست پوسٹ کریں)۔ موڈ کو غیر فعال کرنے کے لیے، "Disable-l7-retry" کے جھنڈے کو "http-request" آپشن میں شامل کر دیا گیا ہے، اور ڈیفالٹس، سننے اور بیک اینڈ سیکشنز میں فائن ٹیوننگ کے لیے "دوبارہ کوشش کریں" کا آپشن شامل کیا گیا ہے۔ دوبارہ بھیجنے کے لیے درج ذیل نشانیاں دستیاب ہیں: تمام-دوبارہ کوشش کرنے کے قابل-غلطیاں، کوئی نہیں، conn-فیلور، خالی-ردعمل، ردی جواب، رسپانس-ٹائم آؤٹ، 0rtt-مسترد، نیز اسٹیٹس کوڈز کو واپس کرنے کا پابند (404، وغیرہ) ;
  • ایک نیا پروسیس مینیجر لاگو کیا گیا ہے، جو آپ کو HAProxy کے ہینڈلرز کے ساتھ ایکسٹرنل ایگزیکیوٹیبل فائلوں کو کال کرنے کی اجازت دیتا ہے۔
    مثال کے طور پر، ڈیٹا پلان API (/usr/sbin/dataplaneapi)، نیز مختلف آف لوڈ سٹریم پروسیسنگ انجن، اس طرح کے ایک بیرونی ہینڈلر کی شکل میں لاگو ہوتے ہیں۔

  • ایس پی او ای (اسٹریم پروسیسنگ آف لوڈ انجن) اور ایس پی او پی (اسٹریم پروسیسنگ آف لوڈ پروٹوکول) ایکسٹینشنز تیار کرنے کے لیے .NET Core، Go، Lua اور Python کے لیے پابندیاں شامل کی گئی ہیں۔ پہلے، توسیع کی ترقی صرف C میں سپورٹ کی جاتی تھی۔
  • ایک خارجی spoa-mirror ہینڈلر (/usr/sbin/spoa-mirror) کو ایک علیحدہ سرور پر درخواستوں کی عکس بندی کے لیے شامل کیا گیا ہے (مثال کے طور پر، ایک حقیقی بوجھ کے تحت تجرباتی ماحول کی جانچ کے لیے پروڈکشن ٹریفک کے کچھ حصے کو کاپی کرنے کے لیے)؛
  • کی طرف سے پیش HAProxy Kubernetes Ingress کنٹرولر Kubernetes پلیٹ فارم کے ساتھ انضمام کو یقینی بنانے کے لیے؛
  • مانیٹرنگ سسٹم میں شماریات برآمد کرنے کے لیے بلٹ ان سپورٹ شامل کی گئی۔ Prometheus;
  • HAProxy چلانے والے دوسرے نوڈس کے ساتھ معلومات کے تبادلے کے لیے استعمال ہونے والے Peers پروٹوکول کو بڑھا دیا گیا ہے۔ دل کی دھڑکن اور خفیہ کردہ ڈیٹا ٹرانسمیشن کے لیے اضافی تعاون سمیت؛
  • "نمونہ" پیرامیٹر کو "لاگ" ہدایت میں شامل کیا گیا ہے، جو آپ کو درخواستوں کا صرف ایک حصہ لاگ میں ڈالنے کی اجازت دیتا ہے، مثال کے طور پر 1 میں سے 10، تجزیاتی نمونہ بنانے کے لیے؛
  • خودکار پروفائلنگ موڈ شامل کیا گیا (profiling.tasks ہدایت، جو اقدار کو آٹو، آن اور آف لے سکتا ہے)۔ اگر اوسط لیٹنسی 1000 ms سے زیادہ ہو تو خودکار پروفائلنگ فعال ہو جاتی ہے۔ پروفائلنگ ڈیٹا دیکھنے کے لیے، "شو پروفائلنگ" کمانڈ کو رن ٹائم API میں شامل کیا گیا ہے یا لاگ میں اعداد و شمار کو دوبارہ ترتیب دینا ممکن ہے۔
  • SOCKS4 پروٹوکول کا استعمال کرتے ہوئے بیک اینڈ سرورز تک رسائی کے لیے معاونت شامل کی گئی۔
  • TCP کنکشنز (TFO - TCP فاسٹ اوپن، RFC 7413) کو فوری طور پر کھولنے کے طریقہ کار کے لیے اینڈ ٹو اینڈ سپورٹ شامل کیا گیا ہے، جو آپ کو پہلی کو ایک درخواست میں اور دوسرے مرحلے کو جوڑ کر کنکشن سیٹ اپ کے مراحل کی تعداد کو کم کرنے کی اجازت دیتا ہے۔ کلاسک 3-مرحلہ کنکشن گفت و شنید کا عمل اور کنکشن قائم کرنے کے ابتدائی مرحلے میں ڈیٹا بھیجنا ممکن بناتا ہے۔
  • نئی کارروائیاں شامل کی گئیں:
    • ریگولر ایکسپریشن کا استعمال کرتے ہوئے یو آر ایل کو تبدیل کرنے کے لیے "http-request replace-uri"؛
    • میزبان نام کو حل کرنے کے لیے "tcp-request content do-resolve" اور "http-request do-resolve"؛
    • "tcp-request content set-dst" اور "tcp-request content set-dst-port" ٹارگٹ IP ایڈریس اور پورٹ کو بدلنے کے لیے۔
  • نئے تبادلوں کے ماڈیولز شامل کیے گئے:
    • AES128-GCM، AES192-GCM اور AES256-GCM الگورتھم کا استعمال کرتے ہوئے اسٹریمز کو ڈکرپٹ کرنے کے لیے aes_gcm_dev؛
    • پروٹوبف پروٹوکول بفر پیغامات سے فیلڈز نکالنے کے لیے؛
    • ungrpc gRPC پیغامات سے فیلڈز نکالنے کے لیے۔

    ماخذ: opennet.ru

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