مفهوم Caching و تنظیمات آن در پنل CDN آروان
به ذخیرهی اسناد و اطلاعات وب بهشکل موقت و برای کاهش تاخیر و افزایش بازدهی، Caching گفته میشود.
در شبکهی توزیع محتوا یا CDN آروان برای دسترسی سریعتر و بازدهی بیشتر، همچنین اطمینان بالاتر (high availability)، اطلاعات وبسایتها در نقاط و لایههای مختلف ذخیره (Cache) میشود.
اگر اطلاعات درخواستی کاربر در CDN موجود نباشد، درخواست کاربر به سرور اصلی (Origin) ارسال میشود و پس از ذخیرهی پاسخ، درخواستهای مجدد به همان محتوا، دیگر به سرور اصلی ارسال نخواهد شد و از Cache پاسخ داده خواهد شد (به جز برخی موارد مانند Revalidation).
باید توجه داشت که همهی اطلاعات وب ذخیرهشدنی در Cache نیستند و برخی درخواستها میبایست دایم به سرور اصلی ارسال شوند. معمولن اطلاعات ایستا (Static) مانند تصاویر فایلهای js و css و مانند آن در Cache ذخیره میشوند.
به اطلاعاتی که از Cache پاسخ داده شود، Hit گفته میشود و اگر در Cache موجود نباشد و برای دریافت آن به سرور اصلی مراجعه شود، به آن Miss گفته میشود.
برای بررسی Miss یا Hit بودن دیتا کافی است Response Header به نام ar-cache را بررسی کنیم. برای بررسی Response Headerها میتوانید در مرورگر chrome از منوی تنظیمات روی گزینهی More Tools و سپس گزینهی Developer Tools کلیک کنید.
در پنل CDN آروان امکانات و تنضیمات مختلفی برای Cache وجود دارد که در ادامه به آنها میپردازیم.
سطح عملیات Cache
در پنل آروان این امکان را دارید تا سطوح متفاوتی را برای Cache وبسایتتان فعال یا غیرفعال کنید.
- خاموش: در این حالت هیچ اطلاعاتی وارد Cache نخواهد شد و تمام درخواستها به سرور اصلی ارسال خواهد شد.
- چشمپوشی از Query String: در این حالت از Query String موجود در URL چشمپوشی خواهد شد و به همهی درخواستهایی که به یک نشانی URL ولی با Query Stringهای مختلف ارسال میشوند، محتوای یکسانی از Cache پاسخ داده خواهد شد.
برای نمونه اگر درخواست:
https://www.arvancloud.com/assets/images/pages/cdn/cloudDNS.svg?x=test
پیشتر به CDN ارسال شده و در cache ذخیره شده باشد، درخواست:
https://www.arvancloud.com/assets/images/pages/cdn/cloudDNS.svg?x=abcdefg1234
نیز از Cache پاسخ داده خواهد شد (Hit خواهد بود).
- لحاظ کردن Query String: در این حالت برعکس حالت قبل، تمامی Query Stringها در نظر گرفته خواهد شد و دو درخواست به یک نشانی URL ولی Query String متفاوت بهشکل دو محتوای متفاوت در Cache ذخیره خواهند شد. بنابراین اگر همان دو درخواست قسمت قبل را در نظر بگیریم هر دو Miss خواهد بود.
- لحاظ کردن Query String + Cookie: در این حالت افزونبر Query String مقدار cookie در Request Header نیز در نظر گرفته میشود.
برای نمونه، برای درخواست به یک نشانی URL مقدار Cookie بهشکل زیر است:
Cookie: test=123; other=abc
میخواهیم بهازای متغیر test در Cookie مقادیر ذخیره شده در cache متفاوت باشد. کافی است در قسمت متغییر دلخواه در کوکی مقدار test را Set کنیم. در این موقعیت، اگر درخواستی به همان نشانی URL ولی با Header:
Cookie: test=567; other=abc
ارسال شود، نتیجه Miss خواهد بود.
اگر متغییر دلخواه در کوکی خالی باشد، Cookie در نظر گرفته نخواهد شد.
همچنین در این قسمت در نظر گرفتن قسمتی از Query String برای cache نیز ممکن است. کافی است گزینهی لحاظ کردن تمام Query Stringها را خاموش کنید و متغییرهای دلخواه را در قسمت لحاظ کردن Query String خاص Set کنید.
مدت زمان اعتبار اطلاعات Cache شده
در این بخش از پنل، با کلیک روی تنظیمات پیشرفته گزینههای بیشتری خواهید داشت که در ادامه آنها را توضیح میدهیم.
- مدت زمان اعتبار اطلاعات Cache شده: مدت زمانی است که اطلاعات ذخیره شده در Cache باقی خواهد ماند. پس از گذشت این مدت زمان، اطلاعات از cache پاک خواهد شد.
- Cache اطلاعات در مرورگر: مدت زمانی که مرورگر مجاز است اطلاعات را ذخیره (Cache) کند.
- Cache صفحات دارای set-cookie: اگر این گزینه خاموش باشد پاسخهایی از سرور که دارای set-cookie header هستند Cache نخواهند شد و اگر این گزینه روشن باشد این صفحات Cache خواهند شد.
حذف اطلاعات Cache شده
گاهی نیاز است دیتای موجود در Cache حذف شود. این کار به دو روش در پنل آروان انجام میشود که در ادامه به آنها میپردازیم.
- پاک کردن گزینشی فایلها: اگر مایلید برخی فایلهای خاص از Cache پاک شود، با کلیک روی این گزینه میتوانید نشانی URL آنها را وارد و آنها را بهشکل گزینشی پاک کنید.
- پاک کردن همه چیز: با کلیک روی این گزینه میتوانید تمامی دیتای موجود در Cache را بهازای هر یک از دامنهها پاک کنید.
دسترسی همیشگی
با روشن بودن این گزینه، CDN آروان میتواند در موقعیتی که وبسایت شما از دسترس خارج میشود با دیتای موجود در Cache، درخواست کاربران را پاسخ دهد.
باید در نظر داشت که با از دسترس خارج شدن وبسایت، امکان Cache دیتای جدید در CDN وجود ندارد، پس میتوانید پیش از بروز مشکل در وبسایت، با تنظیم قوانین صفحات مناسب، تعیین کنید چه چیزهایی میبایست cache شوند.
وضعیت برنامهنویسی
گاهی نیاز است بهشکل موقت برای بررسی تغییرات روی وبسایت هنگام برنامهنویسی، Caching بهشکل کامل غیرفعال شود.
با روشن کردن این گزینه میتوانید بهشکل موقت Caching را غیرفعال کنید. البته دیتایی که از قبل Cache شده است، باقی خواهد ماند و حذف نخواهد شد و پس از خاموش کردن این گزینه، مجدد درخواستها از Cache پاسخ داده خواهد شد.