সার্ভার কনফিগারেশন
প্রোডাকশন ওয়েব অ্যাপ্লিকেশনের জন্য সঠিক সার্ভার সেটআপ অত্যন্ত গুরুত্বপূর্ণ। Hyperlane আপনাকে আপনার সার্ভার পরিচালনা করার জন্য দুটি উপায় দেয়: ServerConfig এবং RequestConfig।
ServerConfig সরাসরি HTTP সার্ভারটি পরিচালনা করে। এটি নিচের বিষয়গুলো সেট করতে ব্যবহৃত হয়:
- Address: সমস্ত ইন্টারফেসে শোনার জন্য 0.0.0.0:80 ব্যবহার করুন। আপনার লোকাল মেশিনে সীমাবদ্ধ রাখতে 127.0.0.1:8080 ব্যবহার করুন।
- Nodelay: ল্যাটেন্সি (latency) কমাতে এটি true সেট করুন। এটি ছোট প্যাকেটগুলোকে বাফারিং করার পরিবর্তে তাৎক্ষণিকভাবে পাঠিয়ে দেয়।
- TTL: এটি আউটগোয়িং প্যাকেটগুলোর জন্য Time to Live সেট করে। বেশিরভাগ ক্ষেত্রে 128 মানটি কার্যকর।
RequestConfig প্রতিটি আলাদা HTTP রিকোয়েস্ট পরিচালনা করে। এটি আপনার সার্ভারকে রিসোর্স শেষ হয়ে যাওয়া (resource exhaustion) এবং আক্রমণ থেকে রক্ষা করে। আপনি JSON ব্যবহার করে এই লিমিটগুলো সেট করতে পারেন:
- buffer_size: বাইটে রিড বাফার সাইজ।
- max_path_size: সর্বোচ্চ URL পাথ দৈর্ঘ্য।
- max_header_count: প্রতি রিকোয়েস্টে হেডার সংখ্যার সীমা।
- max_body_size: সর্বোচ্চ অনুমোদিত রিকোয়েস্ট বডি। এটি denial-of-service আক্রমণ প্রতিরোধ করে।
- read_timeout_ms: রিকোয়েস্ট ডেটা পড়ার জন্য সময়ের সীমা।
Hyperlane আপনাকে একটি JSON স্ট্রিং থেকে এই সেটিংসগুলো লোড করার সুবিধা দেয়। এটি কন্টেইনারাইজড এনভায়রনমেন্টে (containerized environments) এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করা সহজ করে তোলে।
প্রোডাকশনের জন্য সেরা অনুশীলনসমূহ:
- কনফিগারেশনের জন্য JSON ব্যবহার করুন। এটি ডেপ্লয়মেন্টকে নমনীয় করে তোলে।
- রিকোয়েস্টের জন্য কঠোর সীমা সেট করুন। আপনার প্রকৃত প্রয়োজনের সাথে max_body_size সামঞ্জস্যপূর্ণ রাখুন।
- ল্যাটেন্সি কম রাখতে API সার্ভারের জন্য nodelay চালু করুন।
- রিড টাইমআউট সেট করুন। এটি স্লো ক্লায়েন্টদের কানেকশন ধরে রাখা থেকে বিরত রাখে।
- সম্ভব হলে 0.0.0.0 এর পরিবর্তে নির্দিষ্ট ইন্টারফেসে বাইন্ড (bind) করুন।
Hyperlane আপনাকে কোড বা JSON-এর মাধ্যমে নিয়ন্ত্রণ প্রদান করে। এই দ্বি-স্তরীয় পদ্ধতিটি নিশ্চিত করে যে আপনার সার্ভার দ্রুত এবং সুরক্ষিত থাকে।
Project Code: https://github.com/hyperlane-dev/hyperlane Source: https://dev.to/tengxgfyrz67s/server-configuration-1dp9