فهرست محتوا
وقتی شما یک سایت اینترنتی را راهاندازی میکنید، برای اینکه سایت شما به درخواستهای مراجعهکنندگان پاسخ دهد نیاز دارید تا یک وبسرور را برای سایت خود انتخاب کرده و از آن استفاده کنید. لایت اسپید یکی از بهترین و قدرتمندترین وبسرورهای موجود است که میتواند برای شما مزایای خوبی را فراهم سازد. این وبسرور پرکاربرد قادر است تا با بهینهسازی و تنظیم ویژگیهایی که دارد عملکرد خیلی بهتری را خصوصا روی CMSهایی مانند وردپرس ارائه کند. تنظیمات کش لایت اسپید یکی از این موارد است که در این مقاله میخواهیم آن را بررسی کنیم.
تنظیمات کش لایت اسپید چگونه است؟
لایت اسپید یک وبسرور محبوب است که میتوانید آن را روی سرویسهایی مانند هاست وردپرس، هاست ابری و یا حتی انواع مختلف سرور اختصاصی در حال کار ببینید. پیشتر در مقاله «تنظیمات کش لایت اسپید» در مورد تنظیمات عمومی لایت اسپید به طور مفصل صحبت کرده بودیم. اکنون نوبت به بررسی تنظیمات مربوط به کش رسیده است. اگر بخواهیم تنظیمات کش لایت اسپید را بررسی کنیم و انواع آن را معرفی کنیم، میتوانیم ۴ دسته مختلف را برای این تنظیمات نام ببریم که بهصورت زیر خواهند بود:
- تنظیمات ذخیرهسازی کَش (Cache Storage Settings)
- سیاست کش (Cache Policy)
- آدرس اینترنتی را کش نکن (Do-Not-Cache URL)
- دامنهها را کش نکن (Do-Not-Cache Domains)
اعمال تنظیمات موردنظر روی هر دسته کمی پیچیدگی دارد. اما درصورتیکه پارامترهای آنها را بشناسید این کار برای شما ساده خواهد شد. به این صورت که اگر بدانید در حال تغییر چه پارامتری هستید و زمانی که این پارامتر را تغییر دهید چه اتفاقی خواهد افتاد، کار شما سبکتر خواهد شد. در ادامه این مطلب بهصورت مفصل به معرفی پارامترهای تنظیمات کش لایت اسپید خواهیم پرداخت.
پارامترهای Cache Storage Settings
یکی از مهمترین بخشهای تنظیمات کش لایت اسپید، Cache Storage Settings است که پارامترهای آن اغلب در بخش Cache Features قرار خواهد گرفت و به این صورت خواهند بود:
Storage Path
این پارامتر از تنظیمات کش لایت اسپید مشخصکننده مسیر نگهداری مواردی است که کَش میشوند. در حال حاضر، لایت اسپید هر چیزی را در فایل شخصی خودش ذخیره میکند و نام فایل را یک hash از key آن انتخاب میکند. برای جلوگیری از ذخیره فایلهای زیاد در یک دایرکتوری، چندین سطح از دایرکتوریها ایجاد میشود. برای فعال کردن کَش این پارامتر باید در سطح Server فعال شود. تنظیمات سطح Virtual Host نیز روی تنظیمات سطح Server بازنویسی میشود.
نکته: برای دریافت عملکرد بهتر از این بخش یک دیسک اختصاصی بهعنوان مکان ذخیرهسازی کَش اختصاص دهید. RAID0 پیشنهاد میشود. همچنین پیشنهاد میشود مسیرهای مختلفی برای ذخیرهسازی کَش هر Virtual Host در نظر گرفته شود تا از خالی کردن درخواستهای Virtual Hostهای دیگر جلوگیری شود.
Enable LiteMage
کَش، LiteMage را برای Magento فعال میکند. زمانی که این پارامتر On شود، سرور تلاش میکند که از اطلاعات کَش خصوصی استفاده کند تا سرعت لود وبسایت را برای اولین بازدیدکنندگان سایت بالا ببرد. انتخاب حالت Safe این پارامتر را غیرفعال میکند.
نکته: اگر ماژول LiteMage روی لایسنس لایت اسپید فعال نباشد، این گزینه کار نخواهد کرد.
Cache Manager Path
مسیری که در این پارامتر تنظیمات کش لایت اسپید داده میشود، مکان ذخیرهسازی فایلهای مدیریتی کَش هست، و بهصورت پیشفرض این فایلها در Storage Pathذخیره میشوند.
نکته: بهتر است مسیر این فایلها، بهصورت مجزا و روی یک دیسک پرسرعت انتخاب شود تا از حذف تصادفی فایلهای مدیریتی جلوگیری شود. همینطور این پارامتر را فقط زمانی روی دیسک RAM تنظیم کنید که cache storage هم روی دیسک RAM است.
Public Storage Expire (minutes)
این پارامتر در واقع بیشترین زمانی است که سرور فایلها را کَش میکند و بعد از آن بهصورت فیزیکی آنها را پاک میکند. برای جلوگیری از پر شدن cache storage فایلها روزی یکبار پاک میشوند. کمترین مقدار آن ۶۰ دقیقه است.
نکته: برای جلوگیری از حذف فایلهای کَش واقعی و معتبر، این پارامتر را بزرگتر از طولانیترین TTL انتخاب کنید.
No Hit Expire (minutes)
بیشترین دقایقی است که یک فایل کَش شده در cache storage نگهداری میشود، بدون یک cache hit قبل از حذف فیزیکی آنها مقدار ۰ این پارامتر را غیرفعال میکند.
پارامترهای Cache Policy
پارامترهایی که در این دسته از تنظیمات کش لایت اسپید مورداستفاده قرار میگیرد عموما تعیینکننده سیاستهای شما برای نحوه کش شدن خواهد بود. این پارامترها عبارتاند از:
Check Public Cache
در صورت فعال بودن کَش عمومی برای URLs درخواستی روی context درخواست شده از طرف کاربر چک میشود. این پارامتر را میتوان در هر سه سطح server و virtual host و context تنظیم کرد.
Check Private Cache
ساختار این پارامتر از تنظیمات کش لایت اسپید بهگونهای است که در صورت فعال بودن کَش خصوصی برای URLs درخواستی روی context درخواست شده چک میشود. این پارامتر را میتوان در هر سه سطح server و virtual host و context تنظیم کرد.
Respect Cacheable
با فعال بودن این پارامتر، اگر cache control در LiteSpeed-specific مشخص نشده باشد، مقدار Cache-Control از هدر پاسخ مورد بررسی قرار میگیرد. در واقع کنترل کَش در LiteSpeed-specific شامل X-litespeed-cache-control در هدر پاسخ و پارامتر cache-control است که توسط رولهای rewrite نوشته میشود.
نکته: این تنظیمات بهصورت پیشفرض فعال هستند.
Max Object Size
بر اساس این پارامتر شما این امکان را خواهید داشت تا سایز بزرگترین محتوای قابل کَش در دایرکتوری کَش را مشخص کنید. معمولا مقدار پیشفرض برای این پارامتر برابر 10MB تنظیم میگردد که قابلافزایش و یا کاهش میباشد. همینطور ورودی این پارامتر بر اساس عدد Integer است و به این معنی است که شما صرفا باید اعداد صحیح را وارد کنید. به طور مثال شما نمیتوانید از 10.5MB برای این مقدار استفاده کنید و مقدار مدنظر شما باید به یکی از دو اندازه 10MB یا 11MB گرد شود.
Cache Stale Age (seconds)
ساختار کلی کش به این صورت است که هر فایلی برای مدتزمان محدود در کَش قرار میگیرد و بعد از آن خارج میشود. حال اگر مدتزمان تمام شود و فایل جدیدی هنوز در کَش کپی نشده باشد، فایل موجود میتواند به اندازه Cache Stale Age باز هم در کَش بماند تا فایل بعد کپی شود. مدتزمان تعیین شده برای این پارامتر بهصورت پیشفرض ۱۰ ثانیه است.
Cache Key Modifications
این پارامتر با حذف پارامترهای junk query string از URLs، درخواستها را برای کَش شدن مناسبتر میکند. از این پارامتر بدر قالب گزینههایی که در ادامه عنوان شدهاند میتوان استفاده کرد:
- clear: تمام تنظیمات قبلی را نادیده میگیرد.
- -qs:[string] همه query string را حذف میکند اگر نام عیناً مشابه مقدار [string] باشد.
- utm-qs*:همه query stringها را حذف میکند اگر نام به مقدار [string] آغاز شود.
دو مورد زیر را بهعنوانمثال در نظر بگیرید:
- utm-qs*: همه query stringها که با نام “utm” شروع میشوند را حذف میکند.
- gclid-qs: همه query stringها که نام آنها دقیقاً “gclid” است را حذف میکند.
Publicly Cache All
عملکرد این پارامتر از تنظیمات کش لایت اسپید اینگونه است که بهصورت عمومی تمام URLها را کَش میکند و این کار را در تمام سطوح server و virtual host و context انجام خواهد داد.
Virtual hostهایی که از طریق فایل httpd.conf آپاچی پیکربندی شدهاند میتوانند دستورات “CacheEnable” و “CacheDisable” در server و virtual host و context یا فایل htaccess. استفاده کنند. “CacheEnable” و “CacheDisable” منطبق با دستورات mod_cache در آپاچی هستند. این را نیز در نظر بگیرید در این حالت دستورات “CacheEnable” و “CacheDisable” فقط روی دایرکتوریهای زیر همان سطح اعمال میشوند و پارامترهای URL نادیده گرفته میشوند.
بهعنوانمثال اگر دستورات “CacheEnable” و “CacheDisable” در htaccess. نوشته شوند فقط روی همان دایرکتوری که htaccess. قرار دارد اعمال میشود.
Cache Expire Time (seconds)
مقدار این پارامتر مشخصکننده مدتزمانی است که محتوا در کَش نگهداری میشود. مقدار پیشفرض «۸۶۴۰۰» ثانیه (یک روز) است.
Privately Cache All
این پارامتر همه URLها را بهصورت اختصاصی کَش میکند، و مانند پارامتر Publicly Cache All این کار را در تمام سطوح server و virtual host و context انجام میدهد. همچنین یک کپی از محتوای کَش شده بهصورت مجزا برای هر یوزر بر اساس IP خود ایجاد و کوکیها تنظیم میشوند.
Virtual hostهایی که از طریق فایل httpd.conf آپاچی پیکربندی شدهاند میتوانند دستورات “CacheEnable private /url” و “CacheDisable private /url” را در server و virtual host و context یا فایل htaccess. استفاده کنند. “CacheEnable private ” و “CacheDisable private” منطبق با دستورات mod_cache در آپاچی هستند. این نکته را نیز باید در نظر گرفت که در این حالت دستورات “CacheEnable private” و “CacheDisable private” فقط روی دایرکتوریهای زیر همان سطح اعمال میشوند و پارامترهای URL نادیده گرفته میشوند.
نکته: این پارامتر بهصورت پیشفرض غیرفعال است و اگر از پلاگین LSCache استفاده میکنید آن را فعال نکنید.
Private Cache Expire Time (seconds)
این پارامتر مشخصکننده مدتزمانی است که محتوا در private cache قرار میگیرد. مقدار پیشفرض آن ۶۰ ثانیه است.
Micro Cache 5XX Response
زمانی که پاسخ به یک درخواست HTTP با کد 5xx (مانند ۵۰۰ یا ۵۰۳ و…) پاسخ داده میشود اگر در هدر قابلیت کَش شدن (cacheable) فعال باشد، آن پیج برای ۱۰ ثانیه کَش میشود. این پارامتر بهصورت پیشفرض برای سطح Server فعال است. سطح Virtual host نیز از تنظیمات سطح Server و سطح Context نیز از سطح Virtual host ارثبری میکند.
نکته: فعال کردن این پارامتر میتواند از bad requestها جلوگیری کند همچنین محافظت در برابر DDoS را نیز افزایش میدهد زیرا هنگام DDoS تعداد درخواستهایی که با کد HTTP 5xx جواب داده میشود بسیار زیاد است که با فعال کردن این پارامتر پاسخ آنها از کَش داده شده و این باعث کاهش بار وبسرور میشود.
پارامترهای Do-Not-Cache URL
این بخش شامل یک پارامتر انفرادی و البته بزرگ به نام Do-Not-Cache URL میباشد و مانند سطوح قبلی از تعداد زیادی پارامتر پیچیده برخوردار نیست. این پارامتر تنظیمات کش لایت اسپید بهصورت لیستی از URL segmentها است. هر URL که شامل این segmentهای لیست شده باشد، کش نمیشود. در این پارامتر از قابلیت تطابق String یا همان string matching استفاده میشود، و عبارتهای باقاعده یا regular expressionها پشتیبانی نمیشود.
بهطورکلی این پارامتر در سطح server یا virtual host تنظیم میشود. سگمنتهای URL که در سطح server تنظیم شدهاند توسط همه virtual hostها نیز به ارث برده میشوند و به لیست قوانین URLهایی که نباید کش شوند اضافه میشوند.
نکته: میتوانید با اضافه کردن پارامتر «#» در ابتدای متن، به این فهرست کامنت اضافه کنید.
پارامترهای Do-Not-Cache Domains
این پارامتر نیز مانند پارامتر قبلی یک فهرست بزرگ و تک پارامتر به نام No Cache Domain را ارائه میدهد. این پارامتر از تنظیمات کش لایت اسپید در واقع لیستی از دامنههایی است که نباید کَش شوند. این لیست با کاما از یکدیگر جدا میشوند. کار با این پارامتر میتواند کمی از موارد دیگر پیچیدهتر باشد. نکاتی که باید برای این پارامتر در نظر داشته باشید عبارتاند از:
- این لیست به بزرگی و کوچکی حروف حساس است و .www نیز باید حذف شود.
- استفاده از کاراکترهای wildcard مانند «*» و «?» مجاز است. توجه داشته باشید ? فقط با یک کاراکتر جایگذاری میشود اما * با هر تعدادی از کاراکترها قابل جایگذاری است. بهعنوانمثال «*.mydomain.com» برای همه ساب دامنهها در نظر گرفته میشود.
- یک نام دامنه نباید دوبار نوشته شود.
نتیجهگیری
در این مطلب در مورد پارامترهای تنظیمات کش لایت اسپید صحبت کردیم و تمامی این پارامترها را بهصورت جزءبهجزء مورد بررسی قرار دادیم این پارامترها به شما کمک خواهد نمود تا یک برنامه منسجم را برای تنظیماتی که مدنظر دارید پیادهسازی کنید. البته در نظر داشته باشید که شما لازم دارید تا برای استفاده از این پارامترها به نکات گفته شده توجه داشته باشید و محدودیتهایی که گفتیم را رعایت کنید. در غیر این صورت ممکن است نتیجه مطلوب شما حاصل نشود.