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

Nginx

Nginx یک وب‌سرور سبک و قدرتمند است که برای مدیریت هم‌زمان درخواست‌های زیاد و سرویس‌دهی سریع طراحی شده است. این نرم‌افزار علاوه بر وب سرور، به عنوان معکوس پراکسی (reverse proxy)، متعادل‌ساز بار (load balancer) و کش سرور نیز مورد استفاده قرار می‌گیرد. به دلیل کارایی بالا و پشتیبانی از معماری رویداد محور، Nginx انتخاب ایده‌آلی برای سرویس‌های PaaS است که نیاز به پاسخ‌دهی سریع و همزمان به تعداد زیادی درخواست دارند.

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

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

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

    توجه

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

  • livenessProbe path: این متغیر تعیین می‌کند که بعد از استارت شدن برنامه شما، به چه path از ساب دامین باید probe زده شود. مقدار پیش‌فرض آن «/» در نظر گرفته شده است.

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

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

    توجه

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

  • path: این متغیر نیز همانند liveness Probe path، به pathای ارسال می‌شود که تنظیم می‌کنید، مقدار پیش‌فرض آن هم «/» است.

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

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

    توجه

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

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