در این صفحه گزینههای فرم قانون مسیر را بررسی میکنیم. برای ساخت، هدایت درخواستها به آپاستریم با قوانین مسیر را دنبال میکنیم.
قانون مسیر مشخص میکند هر درخواست به کدام برش سایت تعلق دارد، به کدام آپاستریم پیشفرض برود، و در لبه چه رفتاری اعمال شود. ساخت آپاستریم بهتنهایی ترافیک نمیفرستد؛ بدون دستکم یک قانون — معمولا /* — لبه پاسخ 404 میدهد.
در پنل این صفحه قوانین مسیر (لوکیشن) است. فرم با برای کدام مسیر میخواهید قوانین خاصی تنظیم کنید؟ شروع میشود و بعد چه تنظیماتی بر روی مسیر بالا انجام شود؟ کارتهای اختیاری را باز میکند.
تطبیق
لبه فهرست را از بالا به پایین میخواند و اولین قانون منطبق را برمیگزیند. بقیه نادیده میشوند. ترتیب را با آیکون کنار ردیف عوض میکنیم.
ترتیب تطبیق
اگر
/*بالاتر از/api/*باشد، قانون API هرگز اجرا نمیشود. قانون خاص باید بالاتر از قانون فراگیر باشد.
تطبیق روی مسیر URL است، نه Query String. Query String جداست و فقط اگر در کش روشن باشد روی نسخه کش اثر میگذارد.
| گزینه | مقدار | توضیح |
|---|---|---|
| مسیر مورد نظر (Path) | اجباری؛ با / شروع شود | الگوی Glob برای مسیر درخواست. راهنمای فرم: «برای اشاره به همه مسیرها از علامت * استفاده کنید.» |
| هاست (Host) | اختیاری؛ حداکثر ۲۵۳ کاراکتر | محدود کردن قانون به hostname. اگر خالی باشد همه زیردامنهها در نظر گرفته میشوند |
نمونه Path:
| الگو | منطبق میشود |
|---|---|
/* | همه مسیرها |
/api/* | هر چیزی زیر /api/ |
/pictures/*.{png,jpg} | مسیرهایی که با /pictures/ شروع میشوند و به png یا jpg ختم میشوند |
* هر رشتهای را میگیرد. {a,b} یکی از مقدارها را. ? یک کاراکتر.
هاست:
| مقدار | رفتار |
|---|---|
| خالی | همه hostnameهای همین وبسایت |
example.com | فقط همان دامنه، بدون زیردامنه |
*.example.com | زیردامنهها؛ خود example.com نه |
| الگوی Glob دیگر | مطابق همان الگو |
راهنمای فرم: «اگر فیلد هاست را خالی بگذارید، همه زیردامنهها در نظر گرفته میشوند. با وارد کردن خود دامنه (مثلا example.com)، فقط همان دامنه بدون زیردامنهها تطبیق داده میشود. از الگوهای glob نیز پشتیبانی میکنیم.»
بدون قانون منطبق، پاسخ 404 است. فیلد location در لاگ درخواست همان Path قانون منطبق است.
آپاستریم
| گزینه | مقدار | توضیح |
|---|---|---|
| آپاستریم | اجباری؛ نام یک آپاستریم موجود | پاسخدهنده پیشفرض این قانون. راهنمای فرم: «تعیین یک آپاستریم بهعنوان پاسخدهنده این قانون مسیر» |
از همین فیلد میتوان آپاستریم جدید ساخت. جزییات سرور و پروتکل لبه تا مبدا در تنظیمات آپاستریم است.
این آپاستریم پیشفرض قانون مسیر است. قانون آپاستریم میتواند روی همان Path، مبدا را بر اساس کیستی درخواست عوض کند؛ مثلا کشور یا ربات. اگر چند قانون آپاستریم منطبق شوند، آخرین غالب است — برعکس قانون مسیر که اولی میبرد. تفاوت در قوانین مسیر است.
برای ترافیک خارج معمولا قانون مسیر دوم نمیسازیم. ترافیک از قانون مسیر موجود میآید و قانون آپاستریم گروه را عوض میکند. دو قانون مسیر روی یک الگو تداخل مسیریابی میآورد.
تنظیمات اختیاری
کارتها فقط وقتی دیده میشوند که در چه تنظیماتی بر روی مسیر بالا انجام شود؟ انتخاب شده باشند. برداشتن تیک، همان بخش را به حالت پیشفرض برمیگرداند.
| گزینه در فرم | نقش | مرجع جزییات |
|---|---|---|
| تنظیمات Cache | ذخیرهسازی موقت پاسخ در لبه | تنظیمات کش |
| هدر آپاستریم | هدر روی درخواست به مبدا | هدرهای HTTP اختصاصی ستون |
| بازنویسی مسیر | عوض کردن مسیر ارسالی به مبدا، بدون عوض کردن URL مرورگر | بازنویسی مسیر چیست؟ |
| ویرایش تصویر | تغییر اندازه، فرمت یا کیفیت تصویر؛ هزینه جدا | تنظیمات سرویس عکس |
| تنظیمات CORS | دسترسی مرورگر از دامنه دیگر | تنظیمات CORS |
| تنظیمات لینک امن | الزام توکن برای همین مسیر | تنظیمات لینک امن |
| هدر داوناستریم | هدر روی پاسخ به کاربر | هدرهای HTTP اختصاصی ستون |
| تنظیمات پروتکل | پروکسی HTTP یا gRPC | همین صفحه |
فایروال روی این فرم نیست. شرط و عملیات فایروال در تنظیمات دیواره آتش است.
با دکمه ابر یک قانون /* در انتهای فهرست ساخته میشود. لبه همچنان اولین منطبق را اجرا میکند؛ قانون دستی بالاتر میتواند آن را بپوشاند.
کش
پیشفرض Bypass است. روشن بودن ابر کش را فعال نمیکند.
| گزینه در کارت | رفتار خلاصه |
|---|---|
| کش فعال است | پاسخ قابلکش در لبه ذخیره میشود. خاموش یعنی هر بار از مبدا |
| در نظر گرفتن Query String | هر ترکیب پارامتر نسخه کش جدا میسازد |
| استفاده از هدر Cache-Control یا مدیریت دستی کش | منبع TTL |
| حالت immutable | مرورگر تا پایان Browser TTL اعتبارسنجی نمیکند؛ فقط در مدیریت دستی |
| دادهها روی سرور CDN کش نمیشوند و فقط در مرورگر کاربر ذخیره میشوند | لبه ذخیره نمیکند |
| دادهها بر اساس نوع “دستگاه” کاربر کش شوند | نسخه جدا برای موبایل، تبلت، کامپیوتر |
| دادهها بر اساس “کشور” کاربر کش شوند | نسخه جدا برای کشور GeoIP |
| عدم ارایه محتوای منقضیشده هنگام بهروزرسانی کش | هنگام تازهسازی، نسخه کهنه سرو نمیشود |
TTLها، انواع محتوای قابل ذخیره، و محدودیتها در تنظیمات کش است. مراحل پنل در پیکربندی کش محتوا.
هدر آپاستریم و داوناستریم
دو جهت جداست.
| بخش فرم | جهت |
|---|---|
| سفارشیسازی هدر ارسالی به آپ استریم | روی درخواست، پیش از مبدا |
| سفارشیسازی هدر ارسالی به کاربر (Downstream) | روی پاسخ، پیش از کلاینت |
در هر جهت دو فهرست است:
| فهرست | رفتار |
|---|---|
| هدر با نام و مقدار | افزودن یا بازنویسی |
| هدرهای مسدودشده | حذف همان هدر از ارسال. راهنمای فرم: «هدرهایی را که نمیخواهید ارسال شوند، به این لیست اضافه کنید.» |
Host از این بخش عوض نمیشود؛ در فرم آپاستریم است. هدرهای اختصاصی ستون بهصورت پیشفرض میروند و برای رسیدن به مبدا لازم نیست دوباره اضافه شوند. Connection و CDN-Loop از قانون مسیر حذف یا بازنویسی نمیشوند.
فهرست هدرهای ستون و محدودیت حذف در هدرهای HTTP اختصاصی ستون است. مراحل در سفارشیسازی هدرهای HTTP.
بازنویسی مسیر
URL مرورگر ثابت میماند. مسیری که لبه به آپاستریم میفرستد عوض میشود. محتوا عوض نمیشود.
| گزینه | توضیح |
|---|---|
| پیشوند مسیر مبدا | ابتدای مسیر که جایگزین میشود. راهنما: «مسیرهایی که با این پیشوند شروع میشوند، بازنویسی خواهند شد. مثال: /api/ فقط ابتدای مسیر بررسی میشود، نه کل مسیر.» |
| مسیر مقصد | اجباری وقتی این کارت انتخاب شده. جایگزینی همان پیشوند |
Path قانون با پیشوند بازنویسی یکی نیست. اول قانون منطبق میشود، بعد پیشوند روی مسیر اعمال میشود. Query String عوض نمیشود.
ریدایرکت کار مرورگر است و در فایروال تنظیم میشود، نه در این کارت. تفاوت در بازنویسی مسیر چیست؟ است. مراحل در بازنویسی مسیر درخواست قبل از آپاستریم.
ویرایش تصویر
سرویس عکس بعد از دریافت از آپاستریم و قبل از تحویل به کاربر فیلتر میگذارد. اگر کش روی همین قانون روشن باشد، خروجی تغییریافته کش میشود.
هزینه جدا
استفاده از این قابلیت هزینه مجزا دارد. فهرست قیمت را از واحد فروش میگیریم.
| گزینه | رفتار |
|---|---|
| فیلتر با QueryString | رشته x-img در URL تصویر را عوض میکند |
| فیلتر ثابت | همان نحو v1/... در فیلد commands؛ x-img نادیده گرفته میشود |
فیلتر ثابت همه درخواستهای این قانون را به پردازش تصویر میفرستد. اگر فایل عکس نباشد، پاسخ خطا است. این حالت را فقط روی مسیری میگذاریم که خروجیاش تصویر است.
سرویس عکس با کش بدون در نظر گرفتن Query String سازگار نیست. متن فرم: «برای استفاده از سرویس عکس، باید نوع کش را به «کش شدن دادهها با Query String» تغییر دهید.»
نحو فیلترها در تنظیمات سرویس عکس است. اولین سناریو در اولین تصویر را با سرویس عکس تغییر دهید.
CORS
لبه برای درخواست منطبق، هدر CORS را به پاسخ میگذارد و در صورت نیاز Preflight را همانجا جواب میدهد.
| گزینه | توضیح |
|---|---|
| تنظیمات CORS | روشن یا خاموش برای همین قانون |
| Allow Credential | اجازه Cookie و هدر احراز هویت در درخواست بینمبدا |
| Origin های مجاز | هر Origin در یک خط؛ الگوهای Glob مجاز است |
| هدرهای مجاز | هر نام در یک خط |
| هدرهای Exposed | هر نام در یک خط |
| Max age | ثانیه؛ نگهداری نتیجه Preflight در مرورگر |
| متدهای مجاز | GET، PUT، PATCH، POST، DELETE |
OPTIONS در فهرست متد نیست؛ برای Preflight استفاده میشود. با Allow Credential از * برای Origin استفاده نمیکنیم.
جزییات در تنظیمات CORS. مفهوم در CORS چیست؟. مراحل در فعالسازی CORS روی قانون مسیر.
لینک امن
| گزینه | مقدار | توضیح |
|---|---|---|
| فعال کردن لینک امن برای این مسیر | فعال / غیرفعال | بررسی توکن و زمان انقضا برای درخواستهای همین قانون |
تا این کلید روی قانون روشن نباشد، Secret لینک امن بهتنهایی مسیر را محدود نمیکند. فعال کردن روی /* همه درخواستهای آن قانون را به توکن وابسته میکند؛ معمولا فقط روی مسیر محافظتشده مثل /videos/* روشن میشود.
Secret، نام پارامتر و فرمول توکن در تنظیمات لینک امن است. مراحل در فعالسازی لینک امن (Secure Link) برای مسیر.
پروتکل
پیشفرض، حتی بدون انتخاب این کارت، HTTP است (proxy_http). قانون مسیر فقط HTTP و gRPC را پشتیبانی میکند.
| گزینه | معنی |
|---|---|
| HTTP | پروکسی HTTP؛ کش و بقیه کارتها قابل استفادهاند. WebSocket زیرمجموعه همین پروتکل است و بدون گزینه جدا پشتیبانی میشود |
| gRPC | پروکسی gRPC |
gRPC و کش
با انتخاب پروتکل gRPC، قابلیت تنظیمات Cache قابل استفاده نخواهد بود.
این پروتکل ارتباط لبه با آپاستریم روی همین قانون است و با پروتکل کاربر تا CDN یکی نیست.
اگر اتصال لبه تا مبدا HTTPS باشد، فقط پورت 443 قابل استفاده است. طرح و پورت سرور در تنظیمات آپاستریم است.
حذف
حذف وقتی ممکن است که بخواهیم آن برش دیگر ترافیک نگیرد. متن تایید فرم: «با حذف این قانون مسیر، ترافیکهایی که قبلا به آن ارسال میشد دیگر ارسال نمیشود و احتمال از دسترس خارج شدن سرویس شما وجود دارد.»
اگر هیچ قانون دیگری همان درخواست را نگیرد، پاسخ 404 است. آپاستریمی که قانون مسیر به آن اشاره کند حذف نمیشود؛ اول باید ارجاع قانون برداشته شود.
