سرور کنفیگریشن
پروڈکشن ویب ایپلی کیشنز کے لیے سرور کا درست سیٹ اپ انتہائی اہم ہے۔ Hyperlane آپ کو اپنے سرور کو مینیج کرنے کے دو طریقے فراہم کرتا ہے: ServerConfig اور RequestConfig۔
ServerConfig خود HTTP سرور کو مینیج کرتا ہے۔ آپ اسے درج ذیل چیزیں سیٹ کرنے کے لیے استعمال کرتے ہیں:
- Address: تمام انٹرفیسز پر سننے (listen) کے لیے 0.0.0.0:80 استعمال کریں۔ اپنی لوکل مشین تک محدود رکھنے کے لیے 127.0.0.1:8080 استعمال کریں۔
- Nodelay: لیٹنسی (latency) کو کم کرنے کے لیے اسے true پر سیٹ کریں۔ یہ پیکٹس کو بفّر (buffer) کرنے کے بجائے فوری طور پر چھوٹے پیکٹس بھیج دیتا ہے۔
- TTL: یہ باہر جانے والے پیکٹس کے لیے Time to Live سیٹ کرتا ہے۔ زیادہ تر معاملات میں 128 کی ویلیو کام کرتی ہے۔
RequestConfig انفرادی HTTP درخواستوں (requests) کو مینیج کرتا ہے۔ یہ آپ کے سرور کو وسائل کی کمی (resource exhaustion) اور حملوں سے بچاتا ہے۔ آپ JSON کا استعمال کرتے ہوئے یہ حدود سیٹ کر سکتے ہیں:
- buffer_size: بائٹس میں ریڈ بفّر کا سائز۔
- max_path_size: URL پاتھ کی زیادہ سے زیادہ لمبائی۔
- max_header_count: فی درخواست ہیڈرز کی حد۔
- max_body_size: درخواست کے باڈی (body) کا زیادہ سے زیادہ اجازت شدہ سائز۔ یہ denial-of-service حملوں کو روکتا ہے۔
- read_timeout_ms: درخواست کا ڈیٹا پڑھنے کے لیے وقت کی حد۔
Hyperlane آپ کو یہ سیٹنگز ایک JSON اسٹرنگ سے لوڈ کرنے کی اجازت دیتا ہے۔ اس سے کنٹینرائزڈ (containerized) ماحول میں انوائرمنٹ ویری ایبلز (environment variables) کا استعمال آسان ہو جاتا ہے۔
پروڈکشن کے لیے بہترین طریقے:
- کنفیگریشن کے لیے JSON استعمال کریں۔ یہ ڈیپلائمنٹس کو لچکدار بناتا ہے۔
- درخواستوں کی سخت حدود مقرر کریں۔ اپنی max_body_size کو اپنی اصل ضروریات کے مطابق رکھیں۔
- لیٹنسی کو کم رکھنے کے لیے API سرورز کے لیے nodelay کو فعال کریں۔
- ریڈ ٹائم آؤٹ (read timeouts) سیٹ کریں۔ یہ سست کلائنٹس کو کنکشنز کو کھلا رکھنے سے روکتا ہے۔
- جہاں ممکن ہو، 0.0.0.0 کے بجائے مخصوص انٹرفیسز سے بائنڈ کریں۔
Hyperlane آپ کو کوڈ یا JSON کے ذریعے کنٹرول فراہم کرتا ہے۔ یہ دو سطحی (two-tier) طریقہ کار اس بات کو یقینی بناتا ہے کہ آپ کا سرور تیز اور محفوظ رہے۔
Project Code: https://github.com/hyperlane-dev/hyperlane Source: https://dev.to/tengxgfyrz67s/server-configuration-1dp9