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 متعارف ڪرايو ڊيٽا جو منصوبو، جيڪو توهان کي اجازت ڏئي ٿو HAProxy سيٽنگون منظم ڪرڻ جي اڏام تي REST Web API ذريعي. شامل ڪري، توھان متحرڪ طور شامل ڪري سگھوٿا ۽ پس منظر ۽ سرورز کي ختم ڪري سگھو ٿا، ACLs ٺاھيو، درخواست جي رستي کي تبديل ڪريو، ھينڊلر بائنڊنگ کي IP ۾ تبديل ڪريو؛
  • شامل ڪيو ويو nbthread هدايت، جيڪو توهان کي 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 ۾ ترجمو ڪيو وڃي ۽ ان جي برعڪس؛
  • شامل ڪيو ويو آفيشل سپورٽ لاءِ End-to-End HTTP/2 موڊ (HTTP/2 ۾ سڀني مرحلن جي پروسيسنگ، بشمول پسمنظر تي ڪال، ۽ نه رڳو پراڪسي ۽ ڪلائنٽ جي وچ ۾ رابطي)؛
  • GRPC پروٽوڪول جي bidirectional proxying لاءِ مڪمل سپورٽ gRPC اسٽريمز کي پارس ڪرڻ، انفرادي پيغامن کي اجاگر ڪرڻ، لاگ ۾ gRPC ٽرئفڪ کي ظاهر ڪرڻ ۽ ACLs استعمال ڪندي پيغامن کي فلٽر ڪرڻ جي صلاحيت سان لاڳو ڪيو ويو آهي. gRPC توهان کي مختلف پروگرامنگ ٻولين ۾ microservices جي ڪم کي منظم ڪرڻ جي اجازت ڏئي ٿو جيڪي هڪ عالمگير API استعمال ڪندي هڪ ٻئي سان رابطو ڪن ٿيون. gRPC ۾ نيٽورڪ ڪميونيڪيشن HTTP/2 پروٽوڪول جي چوٽي تي لاڳو ڪئي وئي آهي ۽ ڊيٽا سيريلائيزيشن لاءِ پروٽوڪول بفرز جي استعمال تي ٻڌل آهي.
  • شامل ڪيل سپورٽ “Layer 7 Retries” موڊ لاءِ، جيڪا توهان کي اجازت ڏئي ٿي بار بار HTTP درخواستون موڪلڻ جي صورت ۾ سافٽ ويئر جي ناڪاميءَ جي صورت ۾ جيڪي نيٽ ورڪ ڪنيڪشن قائم ڪرڻ جي مسئلن سان لاڳاپيل نه آهن (مثال طور، جيڪڏهن ڪو جواب نه هجي يا خالي جواب پوسٽ درخواست). موڊ کي غير فعال ڪرڻ لاءِ، "Disable-l7-retry" جھنڊو شامل ڪيو ويو آھي "http-request" اختيار ۾، ۽ "ٻيهر ڪوشش-آن" اختيار شامل ڪيو ويو آھي ڊفالٽ، ٻڌو ۽ پسمنظر واري سيڪشن ۾ ٺيڪ ٺاھڻ لاءِ. هيٺيون نشانيون ٻيهر موڪلڻ لاءِ موجود آهن: سڀ-ٻيهر ڪوشش-غلطيون، ڪو به نه، ڪون-ناڪام، خالي-جواب، ردي-جواب، جواب-وقت ختم، 0rtt-رد ٿيل، ۽ گڏوگڏ اسٽيٽس ڪوڊس (404، وغيره) کي واپس ڪرڻ جو پابند. ؛
  • هڪ نئون پروسيس مئنيجر لاڳو ڪيو ويو آهي، جيڪو توهان کي اجازت ڏئي ٿو ته HAProxy لاءِ هينڊلر سان خارجي قابل عمل فائلن جي ڪالنگ کي ترتيب ڏيو.
    مثال طور، Data Plan API (/usr/sbin/dataplaneapi)، گڏوگڏ مختلف آف لوڊ اسٽريم پروسيسنگ انجڻ، لاڳو ٿيل آهن اهڙي خارجي هينڊلر جي صورت ۾؛

  • SPOE (اسٽريم پروسيسنگ آف لوڊ انجڻ) ۽ SPOP (اسٽريم پروسيسنگ آف لوڊ پروٽوڪول) ايڪسٽينشنز کي ترقي ڪرڻ لاءِ .NET ڪور، گو، لوا ۽ پٿون لاءِ پابند شامل ڪيا ويا آهن. اڳي، توسيع جي ترقي جي حمايت ڪئي وئي صرف سي ۾؛
  • شامل ڪيو ويو هڪ خارجي اسپو-ميرر هينڊلر (/usr/sbin/spoa-mirror) هڪ الڳ سرور ڏانهن درخواستن کي آئيني ڪرڻ لاءِ (مثال طور، حقيقي لوڊ هيٺ تجرباتي ماحول کي جانچڻ لاءِ پيداوار جي ٽرئفڪ جو حصو نقل ڪرڻ لاءِ)؛
  • پاران پيش ڪيل HAProxy Kubernetes Ingress ڪنٽرولر Kubernetes پليٽ فارم سان انضمام کي يقيني بڻائڻ؛
  • شامل ڪيل بلٽ ان سپورٽ مانيٽرنگ سسٽم ۾ شماريات برآمد ڪرڻ لاءِ Prometheus;
  • پيرس پروٽوڪول، HAProxy هلائيندڙ ٻين نوڊس سان معلومات مٽائڻ لاءِ استعمال ڪيو ويو، وڌايو ويو آهي. دل جي ڌڙڪن ۽ انڪرپٽ ٿيل ڊيٽا ٽرانسميشن لاءِ شامل ڪيل سپورٽ شامل آهن؛
  • "نمونہ" پيٽرولر کي "لاگ" جي هدايت ۾ شامل ڪيو ويو آھي، جيڪو توھان کي صرف درخواستن جو ھڪڙو حصو لاگ ۾ ڊمپ ڪرڻ جي اجازت ڏئي ٿو، مثال طور 1 مان 10، ھڪڙو تجزياتي نموني ٺاھيو؛
  • شامل ڪيو ويو خودڪار پروفائلنگ موڊ (profiling.tasks ھدايت، جيڪو خودڪار، آن ۽ آف ويلز وٺي سگھي ٿو). خودڪار پروفائلنگ کي فعال ڪيو ويندو آھي جيڪڏھن اوسط ويڪرائي 1000 ms کان وڌي وڃي. پروفائلنگ ڊيٽا کي ڏسڻ لاءِ، ”شو پروفائيلنگ“ ڪمانڊ کي شامل ڪيو ويو آھي Runtime API يا انگن اکرن کي ري سيٽ ڪرڻ ممڪن آھي.
  • SOCKS4 پروٽوڪول استعمال ڪندي پس منظر سرور تائين رسائي لاءِ شامل ڪيل سپورٽ؛
  • TCP ڪنيڪشن کي جلدي کولڻ جي ميکانيزم لاءِ آخر کان آخر تائين سپورٽ شامل ڪئي وئي (TFO - TCP فاسٽ اوپن، RFC 7413)، جيڪا توهان کي اجازت ڏئي ٿي ڪنيڪشن سيٽ اپ جي تعداد کي گھٽائڻ لاءِ پهرين هڪ کي هڪ درخواست ۾ ۽ ٻيو مرحلو. کلاسک 3-قدم ڪنيڪشن ڳالهين جو عمل ۽ ڪنيڪشن قائم ڪرڻ جي شروعاتي مرحلي ۾ ڊيٽا موڪلڻ ممڪن بڻائي ٿو؛
  • نوان عمل شامل ڪيا ويا:
    • "http-request replace-uri" URL کي تبديل ڪرڻ لاءِ ريگولر ايڪسپريس استعمال ڪندي؛
    • "tcp-request content do-resolve" ۽ "http-request do-resolve" ميزبان نالي کي حل ڪرڻ لاءِ؛
    • "tcp-request content set-dst" ۽ "tcp-request content set-dst-port" ھدف IP پتي ۽ پورٽ کي متبادل ڪرڻ لاء.
  • شامل ڪيا ويا نوان تبادلي جا ماڊل:
    • aes_gcm_dev AES128-GCM، AES192-GCM ۽ AES256-GCM الگورتھم استعمال ڪندي اسٽريمز کي ڊريپ ڪرڻ لاءِ؛
    • protobuf پروٽوڪول بفر پيغامن مان فيلڊ ڪڍڻ لاءِ؛
    • ungrpc gRPC پيغامن مان فيلڊ ڪڍڻ لاء.

    جو ذريعو: opennet.ru

تبصرو شامل ڪريو