در این صفحه، تنظیمات کش در قانون مسیر را بررسی می‌کنیم: فعال بودن کش، نحوه مدیریت Query String و TTL، تفکیک نسخه بر اساس دستگاه و کشور و سایر گزینه‌های مرتبط.

برای فعال‌سازی و پیکربندی کش، پیکربندی کش محتوا را دنبال می‌کنیم. نحوه عملکرد HIT، MISS و BYPASS در مکانیزم کش در CDN ستون چگونه کار می‌کند؟ توضیح داده شده است.

کش برای هر قانون مسیر به‌صورت جداگانه تنظیم می‌شود و در حالت پیش‌فرض Bypass است.

لبه فقط پاسخ‌هایی را در کش ذخیره می‌کند که Content-Type آن‌ها در انواع محتوای قابل‌کش قرار داشته باشد.

تنظیمات اصلی

گزینهمقدارپیش‌فرضتوضیح
کش فعال استفعال / غیرفعالغیرفعالمشخص می‌کند پاسخ‌های قابل‌کش در لبه ذخیره شوند یا خیر.
در نظر گرفتن Query Stringفعال / غیرفعالغیرفعالمشخص می‌کند Query String در نسخه کش در نظر گرفته شود یا خیر.
نحوه مدیریت کش را انتخاب کنیدهدر Cache-Control / مدیریت دستیهدر Cache-Controlنحوه تعیین مدت نگهداری پاسخ در کش لبه و مرورگر را مشخص می‌کند.
داده‌ها بر اساس نوع “دستگاه” کاربر کش شوندفعال / غیرفعالغیرفعالبرای موبایل، تبلت و کامپیوتر نسخه‌های جداگانه ایجاد می‌کند.
داده‌ها بر اساس “کشور” کاربر کش شوندفعال / غیرفعالغیرفعالبرای کشورهای مختلف نسخه‌های جداگانه ایجاد می‌کند.
عدم ارایه محتوای منقضی‌شده هنگام به‌روزرسانی کشفعال / غیرفعالغیرفعالمشخص می‌کند هنگام به‌روزرسانی کش، نسخه منقضی به کاربر ارایه شود یا خیر.

پیش‌فرض Bypass

فعال بودن دکمه ابر به‌تنهایی کش را فعال نمی‌کند. تا زمانی که کش در قانون مسیر فعال نشده باشد، پاسخ در لبه ذخیره نمی‌شود.

وضعیت کش هر درخواست را می‌توانیم در هدر x-zrk-cs و فیلد cache_status لاگ درخواست مشاهده کنیم. توضیحات این مقادیر در هدرهای HTTP اختصاصی ستون آمده است.

فعال بودن کش

وقتی کش فعال است، پاسخ‌های قابل‌کش پس از دریافت از آپ‌استریم می‌توانند در لبه ذخیره شوند و درخواست‌های بعدی از کش پاسخ بگیرند.

اگر کش غیرفعال باشد، پاسخ از کش ارایه نمی‌شود و درخواست برای دریافت پاسخ به آپ‌استریم ارسال می‌شود.

تنظیمات پروتکل

در قانون مسیر می‌توانیم تنظیمات پروتکل را اضافه کنیم. یکی از این دو را انتخاب می‌کنیم:

گزینهمعنی
HTTPپروکسی HTTP؛ کش و بقیه تنظیمات مسیر قابل استفاده‌اند
gRPCپروکسی gRPC

gRPC و کش

با انتخاب پروتکل gRPC، قابلیت تنظیمات Cache قابل استفاده نخواهد بود.

Query String

گزینه در نظر گرفتن Query String مشخص می‌کند پارامترهای URL در نسخه کش در نظر گرفته شوند یا خیر.

وضعیترفتار
فعالQuery String در نسخه کش در نظر گرفته می‌شود و هر ترکیب متفاوت از پارامترها می‌تواند نسخه جداگانه‌ای داشته باشد.
غیرفعالQuery String در نسخه کش در نظر گرفته نمی‌شود و URLهایی با Query String متفاوت از یک نسخه کش استفاده می‌کنند.

برای مثال، اگر این گزینه فعال باشد، file.js?v=1 و file.js?v=2 دو نسخه جداگانه خواهند داشت. اگر غیرفعال باشد، هر دو URL از یک نسخه کش استفاده می‌کنند.

نحوه مدیریت کش

مدت نگهداری پاسخ در کش را می‌توانیم با استفاده از هدر Cache-Control پاسخ آپ‌استریم یا با تعیین TTL به‌صورت دستی مشخص کنیم.

گزینهرفتار
استفاده از هدر Cache-Controlمدت نگهداری پاسخ بر اساس مقادیر Cache-Control پاسخ آپ‌استریم تعیین می‌شود.
مدیریت دستی کشمدت نگهداری پاسخ با TTLهایی که در همین قانون مسیر مشخص می‌کنیم تعیین می‌شود.

هدرهای Cache-Control

در حالت استفاده از هدر Cache-Control، لبه مدت کش شدن پاسخ را از هدر Cache-Control پاسخ آپ‌استریم تعیین می‌کند. مقادیری مانند no-store، private و no-cache مانع کش شدن پاسخ می‌شوند.

مدیریت دستی کش

این گزینه‌ها فقط در حالت مدیریت دستی کش اعمال می‌شوند. واحد تمام TTLها ثانیه است.

گزینهمقدارپیش‌فرضتوضیح
Browser TTLعدد بزرگ‌تر یا مساوی 03600مدت اعتبار پاسخ در کش مرورگر یا کلاینت.
Edge TTLعدد بزرگ‌تر یا مساوی 13600مدت نگهداری پاسخ در کش لبه CDN.
Non-success TTLعدد بزرگ‌تر یا مساوی 00مدت نگهداری پاسخ‌های 4xx آپ‌استریم در کش. مقدار 0 یعنی این پاسخ‌ها کش نمی‌شوند.
Stale TTLعدد بزرگ‌تر یا مساوی 00مدت زمانی که پس از پایان Edge TTL می‌توان نسخه منقضی را ارایه کرد. مقدار 0 یعنی نسخه منقضی ارایه نمی‌شود.

حذف خودکار محتوای کش بدون استفاده

جدا از Edge TTL، اگر برای یک محتوا کش‌شده تا ۲۴ ساعت درخواستی دریافت نشود، آن محتوا از کش لبه حذف می‌شود؛ حتی اگر Edge TTL آن هنوز منقضی نشده باشد.

حالت Immutable

حالت Immutable مشخص می‌کند مرورگر در طول اعتبار Browser TTL، برای بررسی تغییر محتوا درخواست اعتبارسنجی ارسال کند یا خیر.

گزینهمقدارپیش‌فرض
حالت Immutableفعال / غیرفعالغیرفعال

اگر حالت Immutable فعال باشد، مرورگر تا پایان Browser TTL برای همان محتوا درخواست اعتبارسنجی مجدد ارسال نمی‌کند.

محتوای قدیمی در مرورگر

با فعال بودن Immutable، تغییر محتوای آپ‌استریم تا پایان Browser TTL به کلاینتی که نسخه قبلی را در کش دارد نمی‌رسد. Purge کش لبه نیز کش مرورگر را پاک نمی‌کند؛ بنابراین پس از تغییر محتوا باید Browser TTL تمام شود یا کش کلاینت پاک شود.

ذخیره فقط در مرورگر

با فعال کردن داده‌ها روی سرور CDN کش نمی‌شوند و فقط در مرورگر کاربر ذخیره می‌شوند، پاسخ در کش لبه ذخیره نمی‌شود و فقط با استفاده از Browser TTL در کلاینت نگهداری می‌شود.

گزینهمقدارپیش‌فرض
داده‌ها روی سرور CDN کش نمی‌شوند و فقط در مرورگر کاربر ذخیره می‌شوندفعال / غیرفعالغیرفعال

تفکیک بر اساس دستگاه

با فعال کردن داده‌ها بر اساس نوع دستگاه کاربر کش شوند، برای سه گروه موبایل، تبلت و کامپیوتر نسخه‌های جداگانه‌ای از یک URL در کش ایجاد می‌شود.

گزینهمقدارپیش‌فرض
داده‌ها بر اساس نوع “دستگاه” کاربر کش شوندفعال / غیرفعالغیرفعال

برای مثال، اگر پاسخ یک فایل برای موبایل و کامپیوتر متفاوت باشد، می‌توانیم این گزینه را فعال کنیم تا هر گروه نسخه متناسب با خود را دریافت کند.

تفکیک بر اساس کشور

با فعال کردن داده‌ها بر اساس کشور کاربر کش شوند، یک URL می‌تواند برای کشورهای مختلف نسخه‌های جداگانه‌ای در کش داشته باشد.

گزینهمقدارپیش‌فرض
داده‌ها بر اساس “کشور” کاربر کش شوندفعال / غیرفعالغیرفعال

این گزینه زمانی کاربرد دارد که محتوای پاسخ بر اساس کشور کاربر تغییر کند. اگر پاسخ برای همه کشورها یکسان است، فعال کردن آن تعداد نسخه‌های کش را افزایش می‌دهد بدون اینکه محتوای متفاوتی ایجاد کند.

عدم ارایه محتوای منقضی‌شده هنگام به‌روزرسانی کش

این گزینه مشخص می‌کند هنگام تازه‌سازی یک نسخه کش، آیا نسخه منقضی موجود می‌تواند تا آماده شدن نسخه جدید به کلاینت ارایه شود یا خیر.

گزینهمقدارپیش‌فرض
عدم ارایه محتوای منقضی‌شده هنگام به‌روزرسانی کشفعال / غیرفعالغیرفعال

اگر فعال باشد، نسخه منقضی‌شده هنگام به‌روزرسانی کش به کلاینت ارایه نمی‌شود و پاسخ جدید پس از آماده شدن نسخه تازه ارسال می‌شود.

اگر غیرفعال باشد، ممکن است در زمان به‌روزرسانی، نسخه موجود و منقضی‌شده تا آماده شدن نسخه جدید ارایه شود.

کلید کش

نسخه‌های کش بر اساس URL درخواست و گزینه‌های تفکیک فعال‌شده از یکدیگر متمایز می‌شوند.

جزچه زمانی در تفکیک نسخه در نظر گرفته می‌شود؟
Host و مسیرهمیشه
Query Stringوقتی در نظر گرفتن Query String فعال باشد
نوع دستگاهوقتی داده‌ها بر اساس نوع “دستگاه” کاربر کش شوند فعال باشد
کشوروقتی داده‌ها بر اساس “کشور” کاربر کش شوند فعال باشد

فقط در صورت تفاوت واقعی پاسخ تفکیک می‌کنیم

هر عامل تفکیک تعداد نسخه‌های کش را افزایش می‌دهد و می‌تواند نرخ HIT را کاهش دهد. تفکیک را فقط زمانی فعال می‌کنیم که پاسخ برای آن عامل واقعا متفاوت باشد.

انواع محتوای قابل‌کش

پاسخ فقط زمانی در کش ذخیره می‌شود که Content-Type آن در فهرست انواع محتوای قابل‌کش قرار داشته باشد.

نوع محتوا از هدر Content-Type پاسخ آپ‌استریم تشخیص داده می‌شود، نه از پسوند URL.

محدودیت‌ها

موردمحدودیت
دامنه تنظیماتهر قانون مسیر به‌صورت جداگانه
Browser TTLحداقل 0 ثانیه
Edge TTLحداقل 1 ثانیه
Non-success TTLحداقل 0 ثانیه
Stale TTLحداقل 0 ثانیه
حذف نسخه بدون درخواستپس از حداکثر ۲۴ ساعت از آخرین درخواست همان نسخه
انواع محتوای قابل ذخیرهفقط Content-Typeهای موجود در انواع محتوای قابل‌کش

ادامه مسیر