پیکربندی سرور

راه‌اندازی صحیح سرور برای اپلیکیشن‌های وب در محیط عملیاتی (production) حیاتی است. Hyperlane دو روش برای مدیریت سرور شما ارائه می‌دهد: ServerConfig و RequestConfig.

ServerConfig خودِ سرور HTTP را مدیریت می‌کند. شما از آن برای تنظیم موارد زیر استفاده می‌کنید:

  • Address: برای گوش دادن به تمام رابط‌ها (interfaces) از 0.0.0.0:80 استفاده کنید. برای محدود کردن به ماشین محلی خود از 127.0.0.1:8080 استفاده کنید.
  • Nodelay: برای کاهش تأخیر (latency)، این مورد را روی true تنظیم کنید. این ویژگی بسته‌های کوچک را به جای بافر کردن، بلافاصله ارسال می‌کند.
  • TTL: این مورد زمان باقی‌مانده (Time to Live) برای بسته‌های خروجی را تنظیم می‌کند. مقدار 128 برای اکثر موارد مناسب است.

RequestConfig درخواست‌های HTTP مجزا را مدیریت می‌کند. این کار از سرور شما در برابر اتمام منابع و حملات محافظت می‌کند. شما می‌توانید این محدودیت‌ها را با استفاده از JSON تنظیم کنید:

  • buffer_size: اندازه بافر خواندن بر حسب بایت.
  • max_path_size: حداکثر طول مسیر URL.
  • max_header_count: محدودیت تعداد هدرها در هر درخواست.
  • max_body_size: حداکثر اندازه مجاز بدنه درخواست. این کار از حملات منع سرویس (DoS) جلوگیری می‌کند.
  • read_timeout_ms: محدودیت زمانی برای خواندن داده‌های درخواست.

Hyperlane به شما اجازه می‌دهد این تنظیمات را از یک رشته JSON بارگذاری کنید. این قابلیت استفاده از متغیرهای محیطی (environment variables) را در محیط‌های کانتینری آسان می‌کند.

بهترین روش‌ها برای محیط عملیاتی (production):

  • برای پیکربندی از JSON استفاده کنید. این کار استقرار (deployment) را منعطف می‌کند.
  • محدودیت‌های سخت‌گیرانه‌ای برای درخواست‌ها تعیین کنید. مقدار max_body_size را با نیازهای واقعی خود مطابقت دهید.
  • برای سرورهای API، قابلیت nodelay را فعال کنید تا تأخیر کم باقی بماند.
  • محدودیت زمانی خواندن (read timeouts) را تنظیم کنید. این کار مانع از باز ماندن اتصالات توسط کلاینت‌های کند می‌شود.
  • در صورت امکان، به جای 0.0.0.0 به رابط‌های (interfaces) خاصی متصل (bind) شوید.

Hyperlane کنترل را از طریق کد یا JSON در اختیار شما قرار می‌دهد. این رویکرد دو لایه تضمین می‌کند که سرور شما سریع و امن باقی بماند.

کد پروژه: https://github.com/hyperlane-dev/hyperlane منبع: https://dev.to/tengxgfyrz67s/server-configuration-1dp9