پارتیان
پارتیان ابتکار پایدارپایگاه دانشجزئیات مقاله

پایگاه دانش

Caching

۱ آبان ۱۴۰۲
10
1
91
Caching

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

معمولا دستگاه FortiWeb تمامی درخواست های مجاز را به سمت سرور می فرستد. در این حالت نسبت رد و بدل شدن ترافیک بین کاربر و سرور یک به یک است. زمانی که Content Caching فعال شود دستگاه FortiWeb تنها درخواست هایی را به سمت سرور می فرستد که در Cache دستگاه FortiWeb وجود نداشته باشند و یا قابل Cache شدن نباشند. زمانی که تعداد زیادی از درخواست ها در Cache دستگاه FortiWeb وجود داشته باشد نسبت رد و بدل شدن ترافیک بین کاربر و سرور N به 1 می باشد.

عمل Caching بیشترین کارایی را در مواردی که داده ها و اطلاعات به ندرت تغییر می کنند خواهد داشت. به عنوان مثال آیکون ها، تصاویر، فیلم ها، PDF و Static HTML

تنظیمات مربوط به Web Content Caching

مرحله اول:

 اگر قصد Cache کردن تمامی URL ها به جز تعداد کمی از آن ها را دارید از منوی سمت چپ به مسیر Application Delivery > Caching رفته و از نوار بالای صفحه بر روی گزینه ی Web Cache Exceptions کلیک کرده و گزینه ی Create New را جهت ایجاد یک لیست استثنا انتخاب کنید. اگر قصد ایجاد Exceptions ندارید به مرحله ی دوم بروید.

Caching 4

  • بعد از انتخاب یک نام برای فیلد Name بر روی گزینه ی OK کلیک کرده و گزینه ی Create New را انتخاب کنید.

Caching 3

نکته:

  • Host Status: با فعال کردن این گزینه فیلد Host در درخواست با مقدار فیلد Host در تنظیمات فوق مقایسه شده تا در صورت Match شدن، Rule فوق جهت ایجاد Exception اجرا شود.
  • Host: برای این فیلد یک Host Name یا IP Address جهت مقایسه شدن با مقدار فیلد Host در درخواست وارد کنید.
  • Type: توسط این فیلد الگوی مربوط به URL را مشخص می کنید. این فیلد دارای دو گزینه ی  Simple String و Regular Expression می باشد. توسط این گزینه الگوی مورد نظر خود را برای فیلد URL Pattern مشخص خواهید کرد. در صورت انتخاب Simple String باید URL را به صورت کامل یا قسمتی از آن را عینا وارد کنید و در صورت انتخاب Regular Expression باید یک الگو را در فیلد URL Pattern وارد کنید. در واقع Regular Expression ترکیبی از  علامت ها و کاراکتر ها می باشد که الگویی را جهت جستجوی URL فراهم می کند. در نتیجه اگر قسمتی از URL شامل این الگو شود عملیات Match شدن انجام و Rule فوق بر روی Request اعمال می شود. به عنوان مثال با انتخاب گزینه ی Simple String شما می توانید الگوی cart.php/ را به عنوان URL Pattern و یا با انتخاب گزینه ی Regular Expression شما می توانید الگوی ^/*.php را به عنوان URL Pattern در نظر بگیرید. توجه شود که که در صورت انتخاب گزینه ی Simple String الگویی که در نظر می گیرید باید با کاراکتر / شروع شود.
  • URL Pattern: بر اساس انتخاب یکی از دو گزینه ی مربوط به فیلد Type این فیلد را مقدار دهی کنید:
  1. اگر گزینه ی Simple String را برای فیلد Type انتخاب کرده اید، یک String را به عنوان قسمتی از URL، به عنوان شرطی برای Match شدن وارد کنید. به عنوان مثال index.php/ در نتیجه اگر HTTP Request شامل این مقدار شود URL با Rule فوق Match می شود و URL در لیست استثنا قرار می گیرد. دقت شود که URL فوق باید با یک Slash شروع شود.
  2. یک Regular Expression، به عنوان مثال  php.^/* را برای این فیلد در نظر بگیرید. هر URL ای که با مقدار فوق شروع شود با Rule فوق Match می شود و URL در لیست استثنا قرار می گیرد.

این فیلد را با یک Domain Name به عنوان مثال www.example.com مقدار دهی نکنید.

  • Cookie Name: برای این فیلد نام یک کوکی را وارد کنید. این نام باید شبیه به نامی که در فیلد کوکی مربوط به HTTP Header قرار دارد باشد. محتوی ای که برای هر کاربر منحصر بفرد است به عنوان مثال صفحات شخصی که بعد ار عملیات Log In باز می شود، معمولا نباید Cache شود. اگر وب اپلیکیشن مربوط به عملیات احراز هویت بر اساس کوکی بود مقدار این فیلد را بر اساس نام Authentication Cookie مقدار دهی کنید.

مرحله دوم:

  •  در ادامه از منوی سمت چپ به مسیر Application Delivery > Caching رفته  از نوار بالای صفحه بر روی گزینه ی Web Cache Policy کلیک کرده و گزینه ی Create New را جهت ایجاد یک Policy انتخاب کنید.

Caching 2

نکته:

  • Name: توسط این فیلد یک نام برای Policy مورد نظر انتخاب کنید.
  • Cache Buffer Size: توسط این فیلد، ماکزیمم سایز RAM جهت اختصاص دان به محتوی Cache را مشخص می کنید. ذخیره سازی محتوی Cache در هارد دیسک دستگاه FortiWeb انجام پذیر نمی باشد.
  • Maximum Cached Page Size: توسط این فیلد ماکزیمم سایز هر URL را جهت Cache شدن توسط دستگاه FortiWeb مشخص کنید.
  • Default Cache Timeout: توسط این فیلد می توانید مقدار زمانی که محتوی Cache در حافظه باقی می ماند را مشخص کنید. بعد از اتمام زمان فوق دستگاه FortiWeb جهت این که مجددا پاسخ را Cache کند، در خواست های بعدی را به سمت سرور می فرستد. 
  • Exception: برای این فیلد Exceptions Rule ای که در مرحله ی قبل ساختید را وارد کنید.
  • در ادامه جهت اینکه به صورت دستی و نه اتوماتیک مشخص کنید که کدام URL ها Cache نشوند بر روی گزینه ی Create New کلیک کرده و یک Web Cache Policy Item Rule ایجاد کنید.

Caching 1

نکته:

  • Host Status: با فعال کردن این گزینه فیلد Host در درخواست با مقدار فیلد Host در تنظیمات فوق مقایسه شده تا در صورت Match شدن، Rule فوق اجرا شود.
  • Host: برای این فیلد یک Host Name یا IP Address جهت مقایسه شدن با مقدار فیلد Host در درخواست وارد کنید.
  • Type: توسط این فیلد الگوی مربوط به URL را مشخص می کنید. این فیلد دارای دو گزینه ی Simple String و Regular Expression می باشد. توسط این گزینه الگوی مورد نظر خود را برای فیلد URL Pattern مشخص خواهید کرد. در صورت انتخاب Simple String باید URL را به صورت کامل یا قسمتی از آن را عینا وارد کنید و در صورت انتخاب Regular Expression باید یک الگو را در فیلد URL Pattern وارد کنید. در واقع Regular Expression ترکیبی از  علامت ها و کاراکتر ها می باشد که الگویی را جهت جستجوی URL فراهم می کند. در نتیجه اگر قسمتی از URL شامل این الگو شود عملیات Match شدن انجام و Rule فوق بر روی Request اعمال می شود. به عنوان مثال با انتخاب گزینه ی Simple String شما می توانید الگوی cart.php/ را به عنوان URL Pattern و یا با انتخاب گزینه ی Regular Expression شما می توانید الگوی ^/*.php را به عنوان URL Pattern در نظر بگیرید. توجه شود که که در صورت انتخاب گزینه ی Simple String الگویی که در نظر می گیرید باید با کاراکتر / شروع شود.
  • URL Pattern: بر اساس انتخاب یکی از دو گزینه ی مربوط به فیلد Type این فیلد را مقدار دهی کنید. این فیلد را با یک domain name به عنوان مثال  www.example.com مقدار دهی نکنید.
  •  جهت اعمال اینPolicy آن را در یک Inline Protection Profile انتخاب کنید.

قابلیت Cache شدن

Cache در مواردی که داده ها و اطلاعات تغییر نمی کنند کاربرد بهتری دارد. از جمله این موارد می توان به صفحات وب استاتیک، عکس ها، فیلم ها و موسیقی اشاره کرد.

در ابتدا توضیح مختصری در مورد GET و POST خواهیم داشت: دو روش معمول که برای یک Request-Response ویا همان درخواست و پاسخ بین کاربر و سرور استفاده می شود.

  1. GET: درخواست داده یا در خواست به یک منبع مشخص
  2. POST: ارائه ی داده جهت انجام پردازش از سمت یک منبع مشخص

دستگاه FortiWeb اگر درخواست دارای شرایط زیر باشد، پاسخ را Cache نمی کند:

  • از روش GET استفاده نشود.
  • Header شامل موارد زیر شود:
  1. Authorization
  2. Proxy-Authorization
  3. If-Modified-Since
  4. If-Unmodified-Since
  5. If-Match
  6. If-None-Match

همچنین دستگاه FortiWeb اگر پاسخ دارای شرایط زیر باشد، عمل Cache را انجام نمی دهد :

  1. دارای فیلد Set-Cookie باشد.
  2. دارای فیلد Vary باشد.
  3. عمل Caching را ممنوع کرده باشد.
  4. دارای فیلد Content-Length نباشد.
  5. دارای Cache Expiry Tag  نباشد.

پرسش و پاسخ

بازدیدهای بعدی تنها در صورتی با قانون کش تطابق خواهند داشت، که همه Key Generation Factor ها در request جدید با معادل آن در request/response کش شده یکسان باشد.
بهترین گزینه برای cache کردن، داده‌هایی است که تغییر نمی‌کند. مواردی مانند صفحات وب ثابت، تصاویر، فیلم‌ها و موسیقی معمولاً گزینه‌های مناسبی برای cache شدن هستند.
cache نمودن محتوایی اغلب تغییر می‌کند، بدون داشتن مزیت معمول آن یعنی کاهش تاخیر در بارگذاری، با مصرف RAM سربار ایجاد می‌کند.

امتیاز و دیدگاه کاربران

دیدگاه خود را درباره این مقاله بیان کنید.ثبت دیدگاه

10.0

16 خرداد 1403

ناصر رحمتی

مزایای Web Content Caching چیست؟
متشکریم از همراهی شما، میتوانید نظرات و پیشنهادات خود را از طریق فرم زیر برایمان ارسال کنید.

طراحی سایت : رادکام