رفتن به محتوا
nsin docs

Origins و Failover

origin شما سروری است که nsin سایتتان را از آن fetch می‌کند — به‌طور پیش‌فرض، هرچه رکورد DNS شما به آن اشاره می‌کند. دو نوع قانون edge-side این را عوض می‌کنند:

  • Origin pool — چند سرور، با health check و failover.
  • Origin route — path های مشخصی را به سرور مشخصی می‌فرستد.
  1. به Rules → Add Rule → Origin Pool بروید.
  2. هر سرور را اضافه کنید: آدرس، پورت، http یا https.
  3. یک روش انتخاب کنید:
روشچه می‌کند
Round robinبین سرورها می‌چرخد. weight بالاتر سهم بزرگ‌تری می‌دهد.
Least loadسروری که در حال حاضر کمترین کار را دارد ترجیح می‌دهد.
Geographicهر location انسین از سروری که به آن اختصاص داده‌اید استفاده می‌کند.
  1. Save را بزنید.

این را روشن کنید تا nsin هر سرور را probe کند (پیش‌فرض /، یا یک /healthz اختصاصی)، و خرابی‌ها را از چرخش بیرون بکشد. interval، timeout، تعداد خرابی برای eject کردن یک سرور، و تعداد موفقیت برای برگرداندنش را تنظیم کنید. سروری که درخواست‌های واقعی را fail می‌کند هم می‌تواند برای یک استراحت کوتاه eject شود.

path های منطبق را به یک سرور می‌فرستد، بقیه را دست‌نخورده می‌گذارد.

  1. به Rules → Add Rule → Origin Route بروید.
  2. path ها را تنظیم کنید (مثلاً /api/*).
  3. آدرس سرور، پورت و scheme را تنظیم کنید.
  4. Save را بزنید.

جداکردن API از وب‌سایت

  • /api/* → 10.0.0.20:8080 روی http
  • بقیه → origin معمول شما

هر دو نوع قانون اجازه می‌دهند host header (و TLS SNI) ای را که nsin به origin می‌فرستد override کنید — برای backend ای که چند سایت را سرویس می‌دهد. خالی یعنی همان hostname ای که بازدیدکننده خواسته فرستاده می‌شود.

این نام باید داخل همین دامنه یا یک دامنهٔ فعال دیگرِ همین حساب باشد — یعنی app.example.ir می‌تواند app.example.com را بفرستد، اگر هر دو دامنه مال شما باشند. همین قاعده برای Host header رکورد و host بررسی سلامتِ pool هم برقرار است.

کدام قانون را می‌خواهم؟ چند سرور یکسان → pool. بخش‌های مختلف روی سرورهای مختلف → route. می‌توانید هر دو را با هم استفاده کنید.

یک سرور در pool من down است — بازدیدکننده‌ها چه می‌بینند؟ با health check روشن، هیچ‌چیز: ترافیک به بقیه می‌رود. بدون آن، بعضی درخواست‌ها تا وقتی آن را بردارید fail می‌شوند. برای رکورد قطعی‌ها به Uptime ببینید.

می‌توانم به‌جای آدرس IP از hostname استفاده کنم؟ بله، اما در آن صورت nsin به resolve درست آن نام وابسته می‌شود.