وقتی شما یک سایت اینترنتی را راه اندازی می کنید، برای اینکه سایت شما به درخواست های مراجعه کنندگان پاسخ دهد نیاز دارید تا یک وب سرور را برای سایت خود انتخاب کرده و از آن استفاده کنید. لایت اسپید یکی از بهترین و قدرتمندترین وب سرورهای موجود است که می تواند برای شما مزایای خوبی را فراهم سازد. این وب سرور پرکاربرد قادر است تا با بهینه سازی و تنظیم ویژگی هایی که دارد عملکرد خیلی بهتری را خصوصا روی CMS هایی مانند وردپرس ارائه کند. تنظیمات کش لایت اسپید یکی از این موارد است که در این مقاله می خواهیم آن را بررسی کنیم.
فهرست عناوین
تنظیمات کش لایت اسپید چگونه است!؟
لایت اسپید یک وبسرور محبوب است که میتوانید آن را روی سرویس هایی مانند هاست وردپرس، هاست ابری و یا حتی انواع مختلف سرور اختصاصی در حال کار ببینید. پیشتر در مقاله ” تنظیمات کش لایت اسپید ” در مورد تنظیمات عمومی لایت اسپید به طور مفصل صحبت کرده بودیم. اکنون نوبت به بررسی تنظیمات مربوط به کش رسیده است.اگر بخواهیم تنظیمات کش لایت اسپید را بررسی کنیم و انواع آن را معرفی کنیم، می توانیم 4 دسته مختلف را برای این تنظیمات نام ببریم که به صورت زیر خواهند بود:
- تنظیمات ذخیرهسازی کَش ( 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 فایل ها روزی یکبار پاک می شوند. کمترین مقدار آن 60 دقیقه است.
نکته: برای جلوگیری از حذف فایلهای کَش واقعی و معتبر، این پارامتر را بزرگتر از طولانیترین 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
براساس این پارامتر شما این امکان را خواهید داشت تا سایز بزرگترین محتوای قابل کَش در دایرکتوری کَش را مشخص کنید. معمولا مقدار پیش فرض برای این پارامتر برابر ۱۰MB تنظیم می گردد که قابل افزایش و یا کاهش می باشد. همینطور ورودی این پارامتر بر اساس عدد Integer است و به این معنی است که شما صرفا باید اعداد صحیح را وارد کنید. به طور مثال شما نمیتوانید از 10.5MB برای این مقدار استفاده کنید و مقدار مد نظر شما باید به یکی از دو اندازه 10MB یا 11MB گرد شود.
Cache Stale Age (seconds)
شاختار کلی کش به این صورت است که هر فایلی برای مدت زمان محدود در کَش قرار می گیرد و بعد از آن خارج می شود. حال اگر مدت زمان تمام شود و فایل جدیدی هنوز در کَش کپی نشده باشد، فایل موجود می تواند به اندازه Cache Stale Age باز هم در کَش بماند تا فایل بعد کپی شود. مدت زمان تعیین شده برای این پارامتر بصورت پیشفرض 10 ثانیه است.
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)
مقدار این پارامتر مشخص کننده مدت زمانی است که محتوا در کَش نگهداری می شود. مقدار پیشفرض “86400” ثانیه (یک روز) است.
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 قرار می گیرد. مقدار پیشفرض آن 60 ثانیه است.
Micro Cache 5XX Response
زمانی که پاسخ به یک درخواست HTTP با کد 5xx (مانند 500 یا 503 و … ) پاسخ داده می شود اگر در هدر قابلیت کَش شدن (cacheable ) فعال باشد، آن پیج برای 10 ثانیه کَش میشود. این پارامتر بصورت پیشفرض برای سطح 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” برای همه ی ساب دامنه ها در نظر گرفته می شود.
- یک نام دامنه نباید دوبار نوشته شود.
نتیجه گیری
در این مطلب در مورد پارامتر های تنظیمات کش لایت اسپید صحبت کردیم و تمامی این پارامتر ها را به صورت جز به جز مورد بررسی قرار دادیم این پارامتر ها به شما کمک خواهد نمود تا یک برنامه منسجم را برای تنظیماتی که مد نظر دارید پیاده سازی کنید. البته در نظر داشته باشید که شما لازم دارید تا برای استفاده از این پارامتر ها به نکات گفته شده توجه داشته باشید و محدودیت هایی که گفتیم را رعایت کنید. در غیر اینصورت ممکن است نتیجه مطلوب شما حاصل نشود.