پرش به مطلب اصلی

HAProxy

HAProxy یک نرم‌افزار متن‌باز و قدرتمند برای توزیع بار و معکوس کردن پروکسی است که به منظور مدیریت ترافیک شبکه و بهبود عملکرد و قابلیت اطمینان در برنامه‌های وب و سرویس‌های PaaS استفاده می‌شود. این ابزار می‌تواند ترافیک را بین سرورهای مختلف توزیع کرده و با بررسی سلامت سرورها، به سرورهای سالم هدایت کند. HAProxy از پروتکل‌های TCP و HTTP پشتیبانی می‌کند و با قابلیت تنظیمات پیشرفته برای مدیریت ترافیک و توزیع بار به طور موثری در سیستم‌های بزرگ و توزیع‌شده استفاده می‌شود.

نحوه ایجاد این اپلیکیشن مشابه اپ‌های پرکاربرد دیگر تنظیمات مشابه عمومی دارد که در بخش تنظیمات عمومی توضیح داده شده است.

در پنجره دوم یعنی «تنظیمات برنامه»، تعدادی پارامتر اعم از اجباری یا اختیاری وجود دارند که به شرح زیر هستند و البته به صورت پیش‌فرض مقادیری دارند که می‌توانید تغییرشان دهید:

برای این اپ نیاز است که شما یک سری پارامتر را حتما مشخص کنید که از جمله آن‌ها می‌توان به initial delay و timeout اشاره کرد که اولی به این معناست که probe مورد نظر بعد از چند ثانیه تاخیر شروع به انجام عملیات کند و مورد دوم به معنای این است که بعد از چه مدتی probe را failشده درنظر بگیرد. این دو باید برای هر سه probe از قرار زیر تنظیم گردند:

  • livenessProbe initial delay: منظور از این متغیر این است که liveness probe بعد از چند ثانیه تاخیر شروع شود. مقدار پیش‌فرض آن 5 ثانیه در نظر گرفته شده است.

    توجه

    Liveness probe یک نوع health check است که بعد از تاخیر ذکر شده اتفاق می‌افتد، که تنظیم این مقدار با توجه به نوع اپ شما و بسته به اینکه برنامه نوشته شما چه مقدار زمان برای به طور کامل بالا آمدن اولیه نیاز دارد مهم است؛ زیرا که اگر درست تنظیم نشود، از نظر زیرساخت unhealthy تلقی شده و مدام ری استارت خواهد شد که در این صورت قادر به استفاده از برنامه خود نخواهید بود.

  • livenessProbe timeout: این متغیر به این اشاره دارد که probe چند ثانیه منتظر جواب از سمت سرویس بماند که مقدار پیش‌فرض آن 1 ثانیه ست شده است.

  • readinessProbe initial delay: این متغیر بیان گر همان تاخیر اولیه در ارسال probe است که مقدار پیش‌فرض آن 30 ثانیه قرار داده شده است.

    توجه

    Readiness probe نوعی از health check است که نشان‌دهنده آماده بودن سرویس برای زیر بار رفتن است و اگر پاس نشود اپ شما قابل استفاده نخواهد بود؛ به این معنی که برنامه شما به ساب دامین تنظیم شده route نخواهد شد.

  • readinessProbe timeout: همانند livenessProbe timeout عمل می‌کند، به ازای مقدار ثانیه ای برای آن ست می‌شود منتظر ریسپانس از طرف سرویس می‌ماند و بعد probe را در صورت دریافت نکردن جواب مناسب fail شده در نظر می‌گیرد. پیش‌فرض آن 1 ثانیه تنظیم شده است.

  • startupProbe initial delay: همانند متغیر‌های مشابه خود که در بالا ذکر شد عمل می‌کند. مقدار پیش‌فرض آن نیز 30 ثانیه در نظر گرفته شده است.

    توجه

    Startup probe نوعی health check بوده که تعیین می‌کند که آیا برنامه شما با موفقیت استارت شده است یا خیر. این probe دو probe دیگر یعنی readiness و liveness را تا زمانی که کارش انجام نشده باشد متوقف می‌کند.

  • startupProbe timeout: همانند همتای خود در دو probe دیگر عمل می‌کند و مقدار پیش‌فرض آن 5 ثانیه ست شده است.

پارامتر‌های بعدی مشابه بقیه اپلیکیشن‌ها بوده که در قسمت تنظیمات عمومی شرح داده شده است.