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

قوانین صفحات

شما برای استفاده از CDN آروان، کافی است دامنه‌ی مورد نظر را در پنل ثبت و نماد ابر رکورد آن را روشن کنید، سپس سامانه به‌شکل خودکار تنظیمات پیش‌فرض را برای همه‌ی زیردامنه‌ها اعمال خواهد کرد، برای نمونه فایل‌های استاتیک شما Cache خواهند شد.

حال چنان‌چه مایل باشید رفتار پیش‌فرض CDN را تغییر دهید (برای نمونه فایل خاصی Cache نشود یا هدر خاصی نادیده گرفته شود)، نیاز است که در قسمت «قوانین صفحات» برای صفحه‌ی مورد نظر، قانون بسازید.

برای ساخت و مدیریت قوانین صفحات از منوی محصولات، «شبکه توزیع محتوا» را انتخاب، سپس روی «قوانین صفحات» کلیک کنید.

همان‌طور که در تصویر مشخص است، یک قانون پیش‌فرض وجود دارد که تمامی درخواست‌های دامنه‌ی اصلی و Subdomainها با همین قانون هم‌خوان (Match) می‌شوند و طبق همین قانون تنظیمات Caching ،WAF،Firewall و ... روی درخواست‌های این دامنه اعمال می‌شود.

قانون‌ها باید با الگوی scheme://hostname/path ساخته شوند، برای نمونه:

نکته‌ی مهم راجع‌به قوانین صفحات این است که یک درخواست، فقط با یک قانون (نخستین قانونی که با الگو هم‌خوانی دارد) هم‌خوان می‌شود و همه‌ی تنظیمات مورد نظر باید در همان قانون قرار گیرد. ترتیب بررسی قوانین از بالا به پایین است.

حالا فرض کنید که یک وب‌سایت روی نشانی dev.test.com وجود دارد و شما می‌خواهید Caching را روی نشانی /static/ وب‌سایت غیرفعال کنید تا بتوانید تغییرات فایل‌های استاتیک را به‌شکل آنی مشاهده کنید.

برای این کار باید قانونی به‌شکل زیر بسازید:

توجه کنید که برای Wildcard، باید از * استفاده کرد تا هر درخواستی که با /dev.test.com/static شروع شده باشد با این قانون هم‌خوان شود.

درنهایت صفحه‌ی قوانین صفحات شما به‌شکل زیر خواهد بود:

استفاده از عبارات باقاعده (Regular Expression) در تعریف قوانین

اگر قصد تطابق کاراکترهای خاص (حروف و اعداد) با یک قانون را دارید می‌توانید از کروشه [] استفاده کنید.

نمونه ۱: تصور کنید هدف تعریف قانونی است که همزمان هردو URL زیر را شامل شود:

https: //www .example.com/fa

https: //www .example.com/Fa

برای این منظور در بخش نشانی هنگام تعریف یک قانون جدید، قانونی به‌شکل زیر تعریف می‌شود:

https: //example.com/[fF]a/*

نمونه ۲: تصور کنید هدف تنظیم قانونی است که با URLای همانند زیر که در آن عدد به کار رفته مطابقت یابد:

https: //example.com/users/2xxxx

برای این منظور از قانونی مانند زیر استفاده می‌شود:

https: //example.com/users/[0-9]*

نمونه ۳: تصور کنید هدف تعریف قانونی است که با تمام صفحاتی که با حروف کوچک در بازه‌ی a-z آغاز می‌شوند، مطابقت یابد برای این منظور می‌توان از قانونی همانند زیر استفاده کرد:

https: //example.com/[a-z]/*

دقت داشته باشید که اگر هم‌زمان با تعریف قانون بالا، قصد دارید تا تمام صفحاتی که با حروف بزرگ در بازه‌ی A-Z شروع می‌شوند نیز مطابقت یابند، باید قانون جدیدی برای این منظور علاوه بر قانون بالا تعریف کرده و داخل کروشه به جای a-z، عبارت A-Z را قرار دهید.

دقت داشته باشید که قوانین به حروف کوچک و بزرگ حساس هستند.

اگر در ابتدای قانونی http یا https قید نشود، قانون به‌شکل پیش‌فرض با هردو URLهای HTTP و HTTPS مطابقت می‌یابد. برای مثال:

www .example.com/*

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

www .example.com/

در قوانین صفحات، امکانات زیر وجود دارد:

  • تنظیمات Caching

    • مشخص کردن زمان Cache فایل‌ها در شبکه‌ی CDN
    • مشخص کردن زمان Cache در Browser
    • Cache کردن صفحات دارای set cookie (مناسب برای صفحات HTML)
  • شتاب‌دهی وب

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

توجه کنید که امکان فعال‌سازی شتاب‌دهی فقط برای فایل‌های Static مانند css ،js ،jpg ،png و gif وجود دارد. (محتواهایی که امکان خلاصه‌سازی و minify کردن آن‌ها وجود دارد)

  • تنظیمات امنیتی
    • دیواره آتش وب: چنان‌چه این ویژگی فعال شود، تنظیماتی که در قسمت WAF انجام شده است روی این قانون نیز اعمال می‌شود.
    • وضعیت DDoS: با فعال کردن این گزینه، این قانون از تنظیمات DDoS کلی پیروی خواهد کرد.
    • تنظیمات فایروال: شما می‌توانید به‌ازای هر قانون، سطح دسترسی را به‌ازای کشور یا IP تعیین کنید.
  • تنظیمات Proxy
    • ارسال به Cluster: با استفاده از این امکان، می‌توانید برای یک قانون خاص از Origin متفاوتی از آن‌چه در DNS تعریف شده است، استفاده کنید. (برای این کار نیاز است دست کم یک کلاستر در قسمت توزیع بار وجود داشته باشد).
    • تنظیمات Header: در برخی موارد نیاز است Header خاصی به سرور شما ارسال شود (مانند Host Header). هم‌چنین در برخی موارد، نیاز است به کاربر Header جدیدی ارسال شود (مانند allow-access-origin) یا Header که سرور شما ارسال کرده از کاربر مخفی بماند. تمامی این موارد را می‌توانید در بخش تنظیمات Header اعمال کنید.
  • سایر تنظیمات
    • ریدایرکت: شما می‌توانید با status codeهای ۳۰۱، ۳۰۲ و ۳۰۷ درخواست‌های مورد نظر را Redirect کنید.
    • لینک امن: چنان‌چه دسترسی برای یک دامنه یا URL خاص باید برای کاربر با IP خاص و زمان خاص محدود شود، می‌توانید از این قابلیت استفاده کنید.

پاک کردن Cache قوانین صفحات

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

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

این قابلیت تنها برای پلن حرفه‌ای و سازمانی CDN فعال است و برای استفاده از آن باید سرویس خود را ارتقا دهید.

Redirect با استفاده از متغیرها

با استفاده از تنظیمات قوانین صفحه‌ی CDN ابر آروان می‌توان در هدایت خودکار درخواست‌های کاربران از یک دامنه به دامنه‌ی دیگر که به‌وسیله‌ی کدهای ۳۰۱، ۳۰۲ و ۳۰۷ انجام می‌شود، تنظیماتی پیشرفته اعمال کرد. به کمک متغیرها، که به‌شکل نامحدود روی آدرس‌ها قابل اعمال هستند، آدرس‌دهی به مقصد یک درخواست به‌سادگی و با انعطاف بیش‌تری قابل انجام است. برای اطلاع از شیوه‌ی انجام این تنظیمات از راهنمای ریدایرکت استفاده کنید.

تنظیمات Timeout

به کمک تنظیمات Timeout که به‌شکل یک قانون قابل تعریف است، می‌توانید مدت زمانی که برای دریافت Timeout در ارتباط بین سرورهای لبه‌ی CDN ابر آروان و سرور اصلی به‌شکل پیش‌فرض وجود دارد را تغییر دهید. با استفاده از این قابلیت، امکان تغییر بازه‌ی دریافت پیام Timeout در سه زمان مختلف را خواهید داشت:

  • اتصال سرورهای لبه‌ی CDN به سرور اصلی‌ وب‌سایت (Connection Timeout)
  • انتظار برای دریافت پاسخ به درخواست ارسال‌شده برای سرور اصلی (Read Timeout)
  • نوشتن اطلاعات در سرور اصلی (Write Timeout)

برای این‌کار، کافی است در بخش قوانین صفحات پنل کاربری ابر آروان یک قانون جدید تعریف کنید و پس از ورود نشانی و اولویت، از بین تنظیمات موجود گزینه‌ی تنظیم Timeout را انتخاب کنید. سپس، بازه‌ی موردنظر خود را برای هریک از موارد Read Timeout ،Connection Timeout و Write Timeout برحسب ثانیه وارد کنید و در انتها روی گزینه‌ی افزودن قانون کلیک کنید.

در نظر داشته باشید که قابلیت تنظیم Timeout در پلن حرفه‌ای و سازمانی در دسترس است و برای استفاده از آن باید این پلن روی حساب کاربری شما فعال باشد.

اعمال تنظیمات Cache از سمت سرور اصلی

در استفاده از شبکه توزیع محتوا، با توجه به قرار داشتن تعدادی سرور Cache‌ میان مرورگر درخواست‌دهنده و سرور اصلی وب‌سایت، پاسخ به درخواست‌های کاربران به‌وسیله‌ی این سرورها انجام می‌شود. به همین دلیل، ممکن است نیاز داشته باشید تنظیمات مربوط به Caching را از سمت سرور اصلی وب‌سایت مشخص کنید تا نسخه‌های محتوای ارایه‌شده به کاربر به‌شکل بهتری مدیریت شوند. به عنوان مثال، مدت زمان به‌روزرسانی کش یا Revalidate شدن یک فایل را تغییر دهید یا تعیین کنید تعدادی از فایل‌های قرار داده شده روی سرور اصلی، روی سرورهای لبه‌ی CDN کش نشوند. با استفاده از قابلیت Origin Cache Control سرویس CDN ابر آروان، می‌توانید بخش مهمی از تنظیمات مربوط به Cache شدن محتوا را از سرور اصلی وب‌سایت خود مدیریت کنید و به این شکل، انعطاف بیش‌تری روی محتوای خود داشته باشید.

شیوه‌ کار قابلیت Origin Cache Control

در حالت معمول، CDN ابر آروان برای Cache‌ کردن محتوای وب‌سایت درخواستی را برای سرور اصلی وب‌سایت ارسال می‌کند. سرور اصلی پاسخی را به‌شکل HTTP ارسال می‌کند که پارامترهای مربوط به Cache شدن محتوا را نشان می‌دهد. با استفاده از قابلیت اعمال تنظیمات Cache از سمت سرور اصلی، در این پاسخ هدر Cache-control اضافه می‌شود که دستورهایی دقیق‌تر را به سرورهای لبه‌ی CDN‌ درباره‌ی هر محتوا خواهد داد. این پارامترها می‌توانند مشخص کنند که Cache محتوا برای چه مدت زمانی معتبر خواهد بود یا Cache برای چه نوع درخواست‌هایی انجام شود.

انواع هدر Cache-control

اطلاعات قرار گرفته در هدر Cache-control که به‌وسیله‌ی قابلیت Origin Cache Control قابل درک هستند، پارامترهای مختلفی را نشان خواهند داد. وجود پارامترهای زیر نشان‌دهنده‌ی شیوه‌ی Cache شدن منابع خواهد بود:

  • Max-age: اجازه خواهد داد که زمان انقضای Cache از سمت سرور اصلی مشخص شود. به این ترتیب، پس از اتمام زمان مشخص شده، که به ثانیه‌ است، سرورهای لبه مجددن درخواست Validate شدن Cache را ارسال خواهند کرد.

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

  • Private: اگر این پارامتر در هدر وجود داشته باشد، محتوا به‌وسیله‌ی سرورهای لبه کش نخواهد شد و مقصد پاسخ، یک درخواست مشخص است. به این ترتیب، عمل کش شدن فقط در مرورگر اتفاق خواهد افتاد.

  • No-cache: محتوا روی سرورها ذخیره می‌شود، اما به ازای هر درخواست، باید مراحل Validate شدن به‌شکل کامل طی شود.

  • No-store: محتوا در هیچ نقطه‌ای کش نخواهد شد و برای هر درخواست باید مراحل ارسال و دریافت محتوا به‌شکل کامل از سوی درخواست‌دهنده به سمت سرور اصلی و برعکس طی شود.

  • Min-uses: مشخص می‌کند که پس از تعداد مشخصی درخواست برای یک محتوا، سرورهای لبه آن را کش کنند.

  • S-max: سرورهای لبه، زمان انقضای مشخص‌شده به‌وسیله‌ی max-age را به زمان مشخص شده در این پارامتر تغییر می‌دهند.

  • Must-revalidate: محتوایی که این پارامتر را در هدر پاسخ خود دارد، باید به ازای هر درخواست یک بار از طریق سرور اصلی Validate شود.

به‌عنوان نمونه با وجود پارامترهایی مانند زیر در هدر یک بسته‌ی HTTP پاسخ، سرورهای لبه متوجه خواهند شد که این محتوا باید روی تمام سرورها ذخیره‌ شود و پس از ۳۶۰۰۰ ثانیه، مجددن درخواست Validate شدن آن ارسال شود.

Control-Cache: public, max-age=36000

شیوه فعال‌سازی قابلیت Origin Cache Control

برای فعال‌سازی قابلیت اعمال تنظیمات Cache از سمت سرور اصلی، کافی است وارد پنل کاربری ابر آروان، محصول CDN‌ و بخش قوانین صفحات شوید. در ادامه با تعریف قانون صفحه به ازای یک نشانی خاص یا کل دامنه، می‌توانید قابلیت کنترل کش را فعال کنید.

در نظر داشته باشید،‌ قابلیت کنترل کش از امکانات پلن سازمانی CDN‌ ابر آروان است و اگر از سایر پلن‌ها استفاده می‌کنید، برای استفاده از Origin Cache Control باید پلن محصول خود را ارتقا دهید.