سرفصل های مهم
قوانین صفحات
در حالت پیش فرض پس از اتصال دامنه به CDN میزبان کلود، و با فعال بودن آیکن ابر مقابل رکوردها، تنظیماتی از پیش تعریف شده بر روی تمام صفحات شما و زیردامنه ها اعمال خواهند شد. اما اگر بخواهید برای صفحات خاصی، رفتار متفاوتی را از CDN و زیرساخت های امنیتی درخواست کنید، کافیست به بخش "قوانین صفحات" در زیر منوی CDN ابری مراجعه کنید.
پس از ورود به صفحه "قوانین صفحات" برای افزودن page rule ابتدا روی دکمه "افزودن صفحه جدید" کلیک کنید.
دقت داشته باشید که دامنه انتخابی شما همان دامنه ای باشد که می خواهید قانونی برای یکی از صفحات آن تعریف کنید. اگر مایلید برای ساب دامنه ای قانون تعریف کنید نیز باید ابتدا از منوی دامنه ها (dropdown)، زیردامنه مورد نظر را انتخاب کنید.
پس از انتخاب دامنه یا زیر دامنه مورد نظر، باید بعد از "/" مسیر یا path صفحه را وارد کنید.
در خصوص اولویت، اگر برای مثال دو قانون برای یک صفحه یکسان تعیین کرده باشید، ابتدا قانونی بررسی خواهد شد که اولویت بالاتری داشته باشد.
پس از اضافه کردن صفحه، باید قانون مدنظر خود را برای آن تنظیم کنید.
پس مقابل آدرس صفحه، روی آیکن + برای افزودن قانون کلیک کنید.
در ادامه به برخی از قوانینی که می توانید برای صفحات تنظیم کنید، اشاره خواهیم کرد:
مدت زمان اعتبار کش مرورگر (Browser Cache TTL)
زمانی که یک کاربر نهایی از سایتی بازدید می کند، مرورگر آن کاربر محتوای استاتیک سایت را دانلود کرده تا بتواند به کاربر نمایش دهد. این محتوا برای مدت معینی در کش لوکال مرورگر ذخیره می شود که این مدت با مقدار "max-age" در هدر cache-control سرور اصلی مشخص می شود.
زمانی که به max-age رسد، محتوا از کش لوکال مرورگر پاک شده و باید برای مراجعه بعدی کاربر به سایت، مجدداً نسخه جدید از سرور اصلی یا CDN دریافت شود.
فرض کنید که برای برخی از Asset های کش شده از قبل توسط سرور اصلی زمان انقضایی تعیین نشده باشد، در این صورت Browser cache TTL به شما این امکان را می دهد تا برای مرورگر یک زمان انقضای کش تعریف کنید.
به عبارت دیگر به کمک این قانون در تنظیمات "page rule" می توانید تعیین کنید که منابع سایت یا صفحه مورد نظر شما تا چه زمان در کش مرورگر کاربر باقی بمانند.
برای اینکار کافیست در پنل میزبان کلود، مقابل آدرس صفحه بر روی آیکن + جهت افزودن قانون کلیک کنید، و زیر افزودن قانون گزینه Browser cache TTL را انتخاب کنید.
سپس مدت زمان کش مرورگر مورد نظر را تعیین کنید (برای مثال 4 ساعت).
سطوح کش (Cache level)
همانطور که در تنظیمات کشینگ اشاره کردیم، سطوح کش در CDN میزبان کلود به سه دسته تقسیم می شوند:
- بدون کوئری استرینگ: در این سطح، کوئری استرینگِ آدرس ها نادیده گرفته شده و منابع یکسانی از کش را به کاربران نمایش خواهد داد.
- با کوئری استرینگ: در این سطح، با توجه به کوئری استرینگِ دریافتی، محتوای کش متفاوتی نمایش داده خواهد شد.
- استاندارد: در این سطح، علاوه بر کوئری استرینگ ها، کوکی ها نیز در نظر گرفته خواهند شد.
برای مثال در صورتی که سطح "بدون کوئری استرینگ" را برای یک صفحه تعیین کنید، در هر دو حالت زیر یک نوع محتوای کش برای کاربر ارسال خواهد شد:
1/yourwebsite.com/page1/pic.jpg?x=123
2/yourwebsite.com/page1/pic.jpg?x=456
مدت زمان اعتبار کش سرورهای لبه (Edge Cache TTL)
قانون Edge Cache TTL به شما این امکان را می دهد تا مدت زمان کش Asset های سایت تان بر روی سرورهای CDN میزبان کلود را کنترل و مدیریت کنید.
در صورتی که محتوایی روی سرورهای لبه CDN کش شده باشد، در کمترین زمان ممکن از نزدیک ترین سرور دریافت شده و در دسترس کاربر قرار خواهد گرفت.
بسته به عملکرد سایت و دوره های بروزرسانی محتوای صفحات تان می توانید قانونی تعریف کنید که نسخه های کش از یک صفحه خاص، تا چه زمانی در سرورهای Edge یا لبه میزبان کلود، اعتبار داشته باشند. پس از رسیدن به max-age سرورهای CDN باید نسخه جدید محتوا را از سرور اصلی دریافت کرده و آن را ذخیره کنند.
برای اینکار کافیست در بخش افزودن قانون Edge Cache TTL را انتخاب کرده و متناسب با نیاز خود، مدت زمانی را تعیین کنید.
افزودن هدر به کلاینت و سرور (Add header to client/Server)
هدرهای HTTP Response بخشی هستند که به پیام های پاسخ یا response اضافه می شوند. این هدرها را می توان در Response های ارسالی از سرور اصلی به سرورهای CDN و از سرورهای CDN به مرورگر کاربر اضافه کرد.
برای اضافه کردن هدر مورد نظر از سرورهای CDN به سمت کلاینت، می توانید در پنل میزبان کلود افزودن قانون را بر روی Add header to client قرار داده و دو پارامتر key و value را تکمیل کنید.
منظور از key عنوان هدر مورد نظر شماست؛ برای مثال Cache-Control مشخص کننده سیاست کشینگ مورد استفاده در درخواست ها و پاسخ های کلاینت است. منظور از value نیز مقداری است که می خواهید برای آن هدر تعیین کنید. به عنوان مثال می توانید value را برای Cache-control مساوی با no-cache قرار دهید.
کاربرد این قانون زمانی است که بخواهید یک هدر شخصی سازی شده به پاسخ ها اضافه کنید؛ چراکه اکثر هدرهای استاندارد توسط CDN میزبان کلود و با تنظیمات دیگر شما به طور پیش فرض درج خواهند شد.
تنظیمات برای اضافه کردن هدرهای خاص به سرور نیز دقیقا به همین شکل است.
حذف هدر (Remove header)
اگر قصد دارید تا هدری خاص (a single header) که در پیام های بین سرور اصلی و سرورهای CDN ارسال می شود، را حذف کنید، کافیست پس از انتخاب remove header به عنوان یک قانون، عنوان آن هدر را در پارامتر title وارد کنید.
ریدایرکت آدرس (Redirect URL)
اگر می خواهید ترافیک را از آدرسی به آدرس دیگر هدایت کنید، می توانید پس از افزودن صفحه مورد نظر در بخش "قوانین صفحات" میزبان کلود، یک قانون تحت عنوان Redirect URL اضافه کرده و آدرس مقصد را وارد کنید.
برای مثال ممکن است بخواهید صفحه yoursite.com/page1 را به yoursite.com/page15 ریدایرکت کنید، باید ابتدا صفحه را اضافه کرده و مقابل آن روی آیکن + جهت افزودن قانون کلیک کنید. در ادامه قانون ریدایرکت را انتخاب و آدرس yoursite.com/page15 را وارد کنید.
در انتها از شما خواسته می شود تا کد وضعیت ریدایرکت را انتخاب کنید. در اینجا سه کد وضعیت وجود دارد:
- کد وضعیت 301: این کد نشان می دهد که منبع درخواستی به طور دائمی به آدرس دیگری منتقل شده است. مرورگر با توجه به مقصدی که در هدرها معرفی شده، کاربر را به صفحه مقصد هدایت می کند. بعلاوه موتورهای جستجو نیز با مشاهده این کد، لینک های منتهی به صفحه شما را ویرایش و آپدیت می کنند.
- کد وضعیت 302: این کد نشان می دهد که منبع درخواستی به طور موقت به آدرس دیگری منتقل شده است. مرورگر با مشاهده این کد و آدرس مقصد، کاربر را به صفحه نهایی ریدایرکت می کند، اما موتورهای جستجو لینک هایشان به منبع شما را آپدیت نمی کنند.
- کد وضعیت 307: این کد نیز همانند کد 302 برای هدایت موقت ترافیک به آدرس جدید مورد استفاده قرار می گیرد؛ با این تفاوت که از کد 307 برای ارسال پاسخ ها به روش PUT و از کد 302 برای روش GET استفاده می شود.
قوانین امنیتی برای صفحات
تنظیمات محافظت DDoS | سطوح امنیت (Security Level)
اگر قصد دارید برای صفحه ای خاص سطح امنیتی DDoS Protection را تغییر دهید، می توانید پس از افزودن صفحه در پنل میزبان کلود، هنگام افزودن قانون، گزینه Security level را انتخاب کرده و یکی از سطوح یا استراتژی های "سپر"، "جنگنده" و … را در نظر بگیرید؛
جزئیات این سطوح امنیتی در بخش مربوط به امنیت به طور مفصل ارائه شده است. برای مثال در استراتژی قلعه، از سه چالش امنیتی کوکی، JS و کپچا برای جلوگیری از حملات DDoS استفاده خواهد شد.
تنظیمات فایروال | مدیریت دسترسی ها (IP/Country Management)
برای مسدودسازی دسترسی یک IP خاص به صفحه ای از سایت یا برای نمایش یک صفحه خاص تنها برای یک IP می توانید از قانون "مدیریت آی پی" استفاده کنید.
برای اینکار ابتدا باید صفحه مورد نظر را اضافه کرده و سپس از آیکن + مقابل آن برای اضافه کردن قانون استفاده کنید.
پس از انتخاب قانون IP Management و وارد کردن IP یا لیست مورد نظر، با یک گزینه "مجاز" مواجه خواهید شد.
اگر این گزینه را روشن کنید (بر روی حالت مجاز باشد)، تمام درخواست های سایر IP ها بلاک شده و تنها آی پی مشخص شده به صفحه دسترسی خواهد داشت. و بالعکس، اگر این گزینه را خاموش کنید، تمام IP ها به آن صفحه دسترسی داشته بجز آی پی مورد نظر شما.
دقیقاً مطابق با این روش می توانید دسترسی یک کشور خاص را نیز مسدود یا مجاز کنید. به طوری که اگر پس از انتخاب کشور، گزینه مجاز فعال باشد، تمامی کشورها بجز کشور انتخابی شما، امکان مشاهده این صفحه را نخواهند داشت.
تنظیمات محدودیت درخواست ها (Rate Limit)
در صورتی که قصد دارید برای یک IP یا لیستی از IP ها، "محدودیت درخواست" ایجاد کنید، می توانید از گزینه Rate Limit استفاده کنید.
به کمک این ویژگی هر آی پی تنها مجاز است تا یک تعداد مشخص از درخواست را در یک بازه زمانی ارسال کند. برای مثال می توانید برای یک صفحه خاص، معین کنید که آی پی x فقط بتواند 5 درخواست در ثانیه ارسال کند. سپس کاربر باید تا ارسال درخواست ششم خود مدتی صبر کند (برای مثال 5 دقیقه).
برای اینکار در مقابل آدرس صفحه مورد نظر، گزینه افزودن قانون را انتخاب کنید، و سپس روی گزینه Rate Limit کلیک کنید.
حال در منوی باز شده، لیست IP های مدنظر و تعداد درخواست ها در ثانیه یا دقیقه را وارد کنید. در نهایت در بخش مسدودسازی، مدت زمان لازم برای انتظار قبل از ارسال درخواست بعدی را تعیین کنید.
اختصاص کلاستر (Cluster Assignment)
در صورتی که بخواهید برای یک ساب دامنه یا یک مسیر (مثلاً بلاگ)، ترافیک را توسط یک کلاستر مدیریت کنید، باید ابتدا از بخش توزیع بار، یک کلاستر از سرورهای اصلی ایجاد کرده و سپس آن را در این قانون انتخاب کنید.
در خصوص نحوه ساخت کلاستر و مدیریت سرورهای درون pool در بخش "توزیع بار" مفصلاً اطلاعاتی ارائه شده است.
اتمام اتصال (Connection timeout)
Connection timeout مشخص می کند که اتصال برای ارسال درخواست از سرورهای CDN و دریافت پاسخ از سمت سرور اصلی، تا چه مدت زمانی قابل قبول باشد تا پس از اتمام آن یک ارور timeout نمایش داده شود. معمولاً این زمان حدود 5 ثانیه تعیین می شود، اما در صورت نیاز به تغییر آن می توانید به بخش افزودن قانون صفحه مراجعه کرده و با انتخاب گزینه connection timeout و مدت زمان دلخواه، اتصالات را مدیریت کنید.
در این قانون با سه timeout مواجه خواهید شد:
- Connection timeout: مدت زمان قابل قبول برای کل زمان رفت و برگشتی درخواست و پاسخ بین سرورهای CDN و سرور اصلی
- Send timeout: مدت زمان قابل قبول برای زمان تحویل درخواست از سرورهای CDN به سرور اصلی
- Receive timeout: مدت زمان قابل قبول برای زمان دریافت پاسخ از سرور اصلی به سرورهای CDN
توجه داشته باشید که این مدت زمان (Timeout) حداکثر تا 500 ثانیه قابل تنظیم است.
ویرایش Host Headers
هاست هدر مشخص می کند که کلاینت (مرورگر) قصد دسترسی به کدام دامنه را دارد. این یک هدر ضروری است چراکه اکثر هاست های اشتراکی، چندین دامنه را با یک سرور (با IP Address یکسان) میزبانی می کنند.
زمانی که سرورهای CDN درخواستی دریافت کرده و آن را به سمت سرورهای اصلی هدایت می کنند، می توانند بخش هاست هدر آن را تغییر دهند.
این مورد زمانی کاربرد دارد که چند دامنه را روی یک سرور مدیریت کنید یا بخواهید به هر دلیل، پس از دریافت هاست هدری مانند yoursite.com/page1، پیغام با هاست هدری شبیه به yoursite.s2.aws.com به سمت سرور ارسال شود.
برای بازنویسی یا ویرایش هاست هدر می توانید در بخش قوانین صفحات، قانون Modify host headers را انتخاب کرده و هاست هدر مورد نظر را در بخش domain وارد کنید.
نادیده گرفتن کش کنترل (Ignore Cache-control)
کش کنترل روشی است که از طریق آن می توان نحوه کش شدن محتوا و منابع را هنگام بازدید کاربر مدیریت کرد. همانطور که می دانید، هدرهای http پارامتر یا عناصری هستند که با یک فرمت خاص، اطلاعاتی را برای برقراری ارتباطات بهتر بین کلاینت و سرورها در خود حمل می کنند.
Cache-control نیز هدری است که با چند پارامتر، یک سری سیاست کشِ مرورگر را در پاسخ های سرور تعریف می کند. بنابراین کش کنترل مشخص می کند که تا چه زمانی و به چه نحوی یک پاسخ می تواند کش شود.
حال ممکن است بخواهید این cache-control در هدرهای response یا پاسخ های مربوط به یک صفحه خاص نادیده گرفته شود.
برای اینکار کافیست قانون "ignore cache control" را انتخاب و سپس آن را روی "ON" قرار دهید.
راهنمای Wildcard در تعریف قوانین
Wildcard ها کاراکترهای خاصی هستند که می توانند جای حروف یا کاراکتر های ناشناس دیگر قرار گیرند؛ یعنی یک الگوی مشخص تعیین می کنید تا احتمالات و متغیرهای مختلف را در آن منظور کنید. برای مثال اگر بخواهید برای صفحاتی قانون تعریف کنید که فرضاً با الگوی زیر شروع شوند:
https://www.yoursite.com/help
می توانید با استفاده از این wildcard آدرس صفحه را به این صورت وارد کنید:
https://www.yoursite.com/help/*
در لیست زیر می توانید از کاراکترهای رایج کمک بگیرید:
Example | Description | Character |
---|---|---|
wh* : what,why,when,... | هر تعداد کاراکتر | * |
B?lt : bilt, balt, belt,... | یک حرف الفبا در یک جایگاه خاص | ؟ |
B[ae]ll : ball,bell NOT: bill | کاراکترهایی که درون براکت هستند | [ ] |
B[a-d]d: bad,bbd,bcd,bdd. | یک بازه از کاراکترهای درون براکت (از-تا) | - |
1#3: 103,113,123,...,193. | هر کاراکتر عددی تک رقمی | # |
به عنوان مثال می توانید صفحه ای را به این شکل اضافه کنید:
http://*.yoursite.com/*
و با اضافه کردن قانون ریدایرکت، آن را به آدرسی شبیه به این هدایت کنید:
http://yoursite.com/images/$1/$2.jpg
با چنین قانونی اگر کاربری درخواست بازدید از این تصویر را به شکل زیر ارسال کند:
http://blog.yoursite.com/photo.jpg
به چنین آدرس هدایت خواهد شد:
http://yoursite.com/images/blog/photo.jpg
راهنمای استفاده از محصولات
- شبکه توزیع محتوا CDN
- سرور ابری (Cloud Server)