Tuning لایت اسپید

Tuning لایت اسپید

تنظیمات بخش Tuning لایت اسپید

در این مقاله هدف آشنایی با تنظیمات لایت اسپید است که در این بخش پارامترهای مربوط به Tuning لایت اسپید توضیح داده می‌شود. در بخش Configuration کنسول ادمین LiteSpeed قسمت Tuning مربوط به یکسری از تنظیمات اصلی وب سرور جهت افزایش سرعت لود وب سایت هستند که در ادامه براساس این لینک و با جزئیات توضیح داده خواهند شد. همانطور که در این لینک توضیح داده شد با اعمال تنظیمات صحیح لایت اسپید، سرعت لود وب سایت بصورت چشمگیری افزایش پیدا خواهد کرد.

چنانچه با وب سرور لایت اسپید آشنایی ندارید، این لینک را بررسی نمائید

در صفحه‌ی اولیه پنل ادمین روی Configuration کلیک نمائید سپس وارد سربرگ Tuning شوید. برای اینکار طبق مراحل زیر انجام دهید:

تنظیمات لایت اسپید

 

Tuning لایت اسپید

 

 

 

 

پارامترهایی که در سربرگ Tuning لایت اسپید تنظیم می‌شوند و ما در ادامه آن‌ها راتوضیح خواهیم داد به هفت دسته‌ی کلی تقسیم می‌شوند:

  1. بهبود عملکرد سیستم عامل (OS Optimization)
  2. ارتباطات (Connection)
  3. درخواست‌ها و پاسخ‌ها (Request/Response)
  4. بهینه‌سازی تحویل فایل‌های استاتیک (Static File Delivery Optimization)
  5. فشرده‌سازی دو نوع GZIP و Brotli
  6. تنظیمات کلی SSL
  7. QUIC

لازم به ذکر است برای تغییر هر پارامتر روی دکمه‌ی Edit در روبروی دسته بندی کلیک نمائید.

پارامترهای بهبود عملکرد سیستم عامل

بخش OS Optimization از Tuning لایت اسپید مربوط به تنظیمات مرتبط با لایه سیستم عامل است که با وب سرور لایت اسپید در ارتباط هستند

 

 Tunning لایت اسپید

 

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

شاید برای شما سوال پیش بیاید که رم دیسک چیست؟ اگر بخواهیم بصورت خلاصه رم دیسک را توضیح دهیم RAM Disk یا رم درایو RAM Drive یک فناوری قدیمی است که به صورت یک درایو مانند همه‌ی درایوهای دیگر در کامپیوتر اجازه می‌دهد که بخشی از حجم حافظه تصادفی یا همان رَم را به یک فضای ذخیره سازی مستقل تبدیل کنیم به طوری بتوان فایل، برنامه ها و … را روی آن ذخیره و به حالت عادی از آنها استفاده نمود اما مهمترین ویژگی این فناوری این است که چندین برابر از هارد دیسک سریعتر است یعنی اگر نرم افزاری را داخل این درایو نصب کنید فرایند اجرای آن به مراتب کمتر از اجرای آن از روی هارد HDD و SSD است. وب سرور لایت اسپید LSWS برای بهبود عملکرد خود به شما اجازه می‌دهد که از این امکان استفاده کنید.

نکته رم دیسک ابتدا باید در تنظیمات سطح OS یا همان سیستم عامل انجام شود تا وب سرور بتواند از آن استفاده کند. معمولاً توزیع‌های مختلف لینوکس از /dev/shm بعنوان مسیر رم دیسک استفاده می‌کنند اما بصورت کلی به سیسم عامل بستگی دارد.

 

Default SHM Directory: با تنظیم این پارامتر دایرکتوری پیش فرض مموری اشتراکی (shared memory) تغییر می‌کند و اگر این مسیر موجود نباشد ایجاد خواهد شد. همه‌ی داده‌های SHM در این دایرکتوری ذخیره می‌شوند مگر اینکه مسیر دیگری مشخص شود.

Reverse DNS Lookup: یک جستجویی مبتنی بر IP -> Domain Name برای هر یوزر انجام می‌دهد که می‌توانید برای دسترسی لاگین‌ها بررسی شود و بصورت پیش فرض نیز غیرفعال است.

 

پارامترهای ارتباطات

بخش Connection از Tuning لایت اسپید مربوط به تنظیمات اتصالاتی است که سرور قبول می‌کند با تنظیم صحیح پارامترهای این بخش، میزان connectionهای کمتری از دست خواهید داد و بهره‌وری کلی سرور افزایش خواهد یافت همچنین ریسک حملات DOS و DDOS کاهش پیدا می‌کند.

Tuning لایت اسپید

 

Max Connections: این پارامتر از نوع integer است و حداکثر تعداد اتصالات یا Connectionهایی که سرور میتواند قبول کند را مشخص می‌کند. این مقدار مربوط به هر دو نوع اتصالات TCP ساده و SSL است. این عدد بهتر است که از حد سخت افزاری یا hard limitی که توسط server software edition یا لایسنس تعریف می‌شود، تجاوز نکند. این عدد برای انواع لایسنس به این شرح است: 500 برای لایسنس VPS و 800 برای Ultra VPS. زمانی که تعداد اتصالات همزمان ( concurrent connections ) به مقدار ماکسیمم تعریف شده رسید، سرور اتصالات زنده نگه داشته شده (Keep-Alive connections) را به محض تمام شدن درخواست‌شان میبندد.


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

 

Max SSL Connections: این پارامتر از نوع integer است و حداکثر تعداد اتصالات از نوع SSL یا SSL Connection هایی که سرور میتواند قبول کند را مشخص میکند. مجموع اتصالات SSL و non- SSL نباید از مقدار Max Connections تجاوز کند بنابراین باید مقدار واقعی Max SSL Connections مجاز کمتر از Max Connections باشد.

Connection Timeout (secs): این پارامتر از نوع integer است و ماکسیمم مدت زمان بیکاری یک اتصال در طول پردازش یک درخواست را مشخص می‌کند. اگر در طول این زمان درخواست بیکار باشد مثلاً هیچ فعالیت ورودی یا خروجی ( I/O activity ) نداشته باشد، اتصال بسته می‌شود.



نکته
اگر این پارامتر به مقدار کمی تنظیم شود، باعث می‌شود که در طول حملات DoS اتصالات زیادی که سمت سرور هستند سریع بسته شوند.

Max Keep-Alive Requests: این پارامتر از نوع integer است و ماکسیمم تعداد درخواست‌هایی را مشخص می‌کند که در طول یک جلسه پایدار و فعال (persistent session ) از سمت سرور پذیرفته و پردازش می‌شود. بعد از رسیدن به این عدد، سرور تمامی اتصالات را میبندد.

Keep-Alive چیست؟ با استفاده از Keep-Alive یک پل ارتباطی بین وب سرور و مرورگر ایجاد می‌شود بنابراین برای هر درخواست نیاز به یک اتصال جدید نیست و از طریق یک اتصال چند فایل رد و بدل می‌شود.

نکته بهتر است این پارامتر تا حد قابل قبولی بالا باشد. مقادیر “1” و “0” حالت keep-alive را غیرفعال می‌کنند.

 

Keep-Alive Timeout (secs): این پارامتر از نوع integer است و ماکسیمم زمان بیکاری بین درخواست‌های یک اتصالی که در حالت فعال است (keep-alive) را مشخص می‌کند. منظور این است که زمانی‌که یک اتصال بین وب سرور و مرورگر برقرا می‍‌شود اگر در این مدت تعیین شده هیچ درخواستی ارسال نشود، کل اتصال بسته می‌شود و برای درخواست‌های بعدی باید اتصال جدیدی برقرار شود. این تنظیمات فقط برای اتصالات HTTP/1.1 کار می‌کند. اتصالات HTTP/2 دارای keep-alive timeoutهای طولانی‌تری هستند و تحت تاثیر این تنظیمات نیستند.

 

Send Buffer Size (bytes) : این پارامتر از نوع integer است و سایز بافر ارسالی برای هر سوکت TCP را مشخص می‌کند. ماکسیمم مقدار مجاز512K است.


نکته
بهتر است این پارامتر به حالت ” Not Set ” یا 0 تنظیم شود تا از مقادیر پیش فرضی که توسط سیستم عامل تعیین می‌شود، تبعیت کند.

نکته اگر وب سایتتان فایل‌هایی با سایز بزرگ ارسال می‌کند بهتر است سایز بار ارسالی برای بهبود عملکرد افزایش داده شود.

بیشتر بخوانید:  سرور مجازی چیست (VPS) به زبان ساده

نکته کاهش این پارامتر متواند توان عملیاتی و مموری مصرفی را کاهش دهد.

 

Receive Buffer Size (bytes): این پارامتر از نوع integer است و سایز بافر دریافتی برای هر سوکت TCP را مشخص می‎کند. ماکسیمم مقدار مجاز512K است.


نکته
بهتر است این پارامتر به حالت ” Not Set ” یا 0 تنظیم شود تا از مقادیر پیش فرضی که توسط سیستم عامل تعیین می‌شود، تبعیت کند.

نکته : اگر سایز بافر دریافتی زیاد باشد هنگام پردازش درخواست های ورودی با payload بزرگ موجب افزایش عملکرد می‌شود.

نکته کاهش این پارامتر متواند توان عملیاتی و مموری مصرفی را کاهش دهد.

پارامترهای مربوط به درخواست‌ها و پاسخ‌ها

بخش Request/Response از Tuning لایت اسپید مربوط به درخواست‌هایی است که کاربران به سمت وب سایت ارسال و همچنین پارسخ‌هایی که دریافت می‌کنند.

Tuning لایت اسپید

 

Max Request URL Length (bytes): این پارامتر از نوع integer است و ماکسیمم طول مجاز URL است. URL یک آدرس متنی است که برای دسترسی به وب سایت استفاده می‌شود. محدودیت سخت افزاری 65530 بایت است، اگر این پارامتر به مقداری بزرگتر مانند 64K تنطیم شود زمانی استفاده می‌شود که 65530 پر شد. مقدار پیش فرض این پارامتر 8192 یا 8K است.

Max Request Header Size (bytes): این پارامتر از نوع integer است و ماکسیمم سایز هدر HTTP یک URL درخواستی را مشخص می‌کند. محدودیت سخت افزاری این پارامتر 65530 بایت است و برای مقادیر بزرگتر از این عدد اگر کل مقدار 65530 پر شود، مورد استفاده قرار می‌گیرند.

نکته: برای کاهش مموری مصرفی، رفع باگ‌های احتمالی و تشخیص DoS، تا حد امکان این پارامتر را کوچک نگاه دارید. در حالت عادی مقدار 4-8K برای بیشتر وب سایت‌ها مناسب است.

Max Request Body Size (bytes): این پارامتر از نوع integer است و ماکسیمم سایز مربوط به body یک درخواست HTTP را مشخص می‌کند. حداکثر مقدار آن برای سیستم عامل‌های 32Bit عدد 2GB و برای سیستم عامل‌های 64 بیتی این عدد بصورت مجازی نامحدود است.

نکته: برای کمک به جلوگیری از حملات DoS، این پارامتر را به مقدار واقعی مورد نیازتان محدود کنید. فضای swap شما نیز باید فضای کافی برای تأمین این حد را داشته باشد.

 

Max Dynamic Response Header Size (bytes): این پارامتر از نوع integer است و ماکسیمم سایز هدر پاسخ هایی که بصورت داینامیک ایجاد می‌شوند را مشخص می‌کند. محدودیت سخت افزاری این پارامتر 65530 بایت است و برای مقادیر بزرگتر از این مقدار اگر عدد 65530 کاملاً استفاده شود، آن مقدار مورد استفاده قرار می‌گیرد.

مقدار پیش‌فرض: 32768 یا 32K


نکته
برای تشخیص پاسخ‌های داینامیکِ بدِ تولید شده توسط اپلیکیشن‌های خارجی، این پارامتر را به مقدار منطقی پایینی تنظیم نمائید.

Max Dynamic Response Body Size (bytes): این پارامتر از نوع integer است و ماکسیمم سایز بدنه یا body پاسخ‌هایی که بصورت داینامیک ایجاد می‌شوند را مشخص می‌کند. حداکثر حد مجاز برای این پارامتر 2047MB است.

 

پارامترهای بهینه‌سازی تحویل فایل‌های استاتیک

بخش Static File Delivery Optimization از Tuning لایت اسپید مربوط به بهینه سازی فایل‌های ثابتی است که در طی درخواست‌ها و پاسخ‌ها برای کاربران وب‌سایت ارسال می‌شوند. تنظیمات این پارامترها به ویژه زمانی که حجم فایل‌ها زیاد باشد بسیار حائز اهمیت است.

Tuning لایت اسپید

 

Max Cached Small File Size (bytes): این پارامتر از نوع integer است و سایز بزرگترین فایلی که می‌تواند در مموری کَش شود را مشخص می‌کند. بصورت کلی فایل‌های استاتیک به 4 صورت می‌توانند خوانده شوند: memory buffer cache، memory-mapped cache، plain read/write و sendfile();. فایل‌هایی که سایز آن‌ها از این مقدار کمتر است از memory buffer cache خوانده می‌شوند، فایل‌هایی که سایز آن‌ها از این مقدار بیشتر است اما از Max MMAP File Size (bytes) (در ادامه این پارامتر را توضیح خواهیم داد) کمتر است از memory-mapped cache خوانده می‌شوند و فایل‌هایی که سایز ان‌ها بیشتر از Max MMAP File Size (bytes) است توسط plain read/write یا sendfile(); خوانده می‌شوند. بهینه‌ترین حالت نگهداری فایل‌های استاتیک با سایز کمتر از 4K در memory buffer cache است.

نکته در واقع memory-mapped cache بخشی از مموری مجازی است که بصورت بیت به بیت به یک فایل نسبتاً بزرگ اختصاص داده می‌شود. درواقع نگاشتی از فایل در مموری قرار می‌گیرد که باعث افزایش کارایی ورودی خروجی خصوصاً روی فایل‌های بزرگ است.

 

Total Small File Cache Size (bytes): این پارامتر از نوع integer است و مشخص کننده مقدار کل مموری که میتوان به کشِ بافر برای نگهداری یا کَش فایل‌های استاتیک کوچک تخصیص داد.

Max MMAP File Size (bytes): این پارامتر از نوع integer است و مشخص کننده بزرگترین فایلی است که می‌تواند در مموری map یا نگاشت شود. فایل‌های استاتیک در 4 قسمت می‌توانند نگهداری شوند: memory buffer cache، memory-mapped cache، plain read/write و sendfile();. فایل‌هایی که سایز ان ها کمتر ااز Max Cached Small File Size باشد از memory buffer cache خوانده میشود . فایل‌هایی که سایز آنها بیشتر از Max Cached Small File Size باشد اما از Max MMAP File Size کمتر باشد از memory-mapped cache خوانده می‌شوند و فایل‌هایی که سایز آن‌ها بیشتر از Max MMAP File Size (bytes) است توسط plain read/write یا sendfile() خوانده می‌شوند. از آنجا که سرور فضای آدرس 32 بیتی دارد ( 2 گیگ) پیشنهاد میشود این پارامتر خیلی بزرگ نباشد.

Total MMAP Cache Size: این پارامتر از نوع integer است و مقدار نهایی و کلی که می‌توان برای memory- mapped cache برای کش کردن یا خواندن فایل‌های استاتیک با حجم متوسط استفاده شود را مشخص می‌‎کند.

use sendfile(); : این پارامتر از نوع radio box انتخابی است و مشخص می‌کند در چه وضعیتی از سیستم فراخوانی sendfile() برای فایل‌های استاتیک استفاده شود. همانطور که قبلاً توضیح داده شد فایل‌های استاتیک به چهار روش پردازش مشوند: memory buffer cache، memory-mapped cache، plain read/write و sendfile();. فایل‌های کوچکتر از Max Cached Small File Size از memory buffer cache پردازش میشوند. فایل‌های بزرگتر از Max Cached Small File Size اما کوچکتر از Max MMAP File Size از memory-mapped cache پردازش می‌شوند. فایل‌های بزرگتر از Max MMAP File Size بصورت read/write ساده یا توسط sendfile(); استفاده میشوند. sendfile(); یک سیستم فراخوانی “zero copy” است که می‌تواند بهره وری CPU را موقع خواند فایل‌های بزرگ بشدت کاهش دهد. sendfile(); به یک درایور کارت شبکه با هسته بهینه شده نیاز دارد و بهمین جهت برای آداپتورهای شبکه سایز کوچک نمیتواند مناسب باشد.

Use AIO: این پارامتر حالت انتخابی از لیست کشویی دارد. AIO مخفف asynchronous I/O است، در واقع نوعی از پردازش ورودی / خروجی است که اجازه می دهد تا پردازش دیگر که به I/O وابسته هستند قبل از پایان انتقال فعلی ادامه یابد. در واقع این با فعال کردن این پارامتر امکان استفاده از AIO برای فایل‌های استاتیک فراهمی می‌شود. این پارامتر مرتبط با I/O است و اگر سرور I/O wait بالایی دارد این پارامتر مفید و کمک کننده است. برای سیستم‌های 64 بیتی این امکان وجود دارد که فایل‌های نگاشت شده در فضای پردازش آدرس برای بهبود کارآیی AIO نگهداری شوند.

AIO Block Size: این پارامتر حالت انتخابی از لیست کشویی دارد و سایز بلاک ارسالی برای AIO را مشخص می‌کند. این بلاک سایز در تعداد کل فایل‌هایی که در حال پردازش هستند ضرب می‌شود و مقدار نهایی آن باید کمتر از physical memory سرور باشد در غیر اینصورت AIO کارایی نخواهد داشت. اگر سرور به اندازه کافی memory دارد می‌توانید از اعداد بزرگتری استفاده کنید. مقدار پیش فرض این پارامتر “1M” است.

بیشتر بخوانید:  PTR Record چیست؟

File ETag: این پارامتر بصورت انتخاب از بین چند گزینه است و برای استفاده از ویژگی‌‌های inode فایل، آخرین زمان اصلاح فایل و سایز برای تولید هدرETag HTTP در فایل‌های استاتیک است. این سه مشخصه ذکر شده بصورت پیش‌فرض فعال هستند. اگر قصد پردازش فایل از جایی خارج از سرور فعلی دارید بعنوان مثال از روی سرور mirrored شده، بهتر است که inode فایل را تیک نزنید، زیرا اگر تیک بخورد ETag که برای فایل تولید میشود روی سرورها متفاوت خواهد بود!

 

فشرده‌سازی دو نوع GZIP و Brotli

بخش GZIP/Brotli Compression از Tuning لایت اسپید مربوط به تنظیمات فشرده سازی است. این تنظیمات مربوط به الگوریتم‌های فشرده‌سازی GZIP و Brotli هستند.

 

Tuning لایت اسپید

 

 

هنگام برقراری ارتباط با یک وب سایت بین کاربر وب سایت و سرور فایل‌های زیادی رد و بدل می‌شود که در فرمت‌های مختلف متنی و مدیا هستند. هرچه حجم این فایل‌ها کمتر باشد سرعت لود و در نتیجه پاسخ‌دهی به کاربران افزایش می‌یابد. در این زمینه معمولاً دو الگوریتم پر کاربرد برای فشرده سازی برای کاهش حجم فایل‌ها استفاده میشود: الگوریتم GZIP که قدیمی‌تر است و روی انواع مدیاها مانند عکس و فیلم و … اجرا می‌شود و الگوریتم Brotli که اخیراً ارائه شده است کاربردی عمومی دارد و هر نوع فایلی را فشرده می‌کند، اما پیشنهاد می‌شود برای PNG ، JPG و GIF استفاده نشود و معمولاً روی فایل‌های مبتنی بر متن مانند HTML ، جاوا اسکریپت و CSSبهترین کارآیی را دارد. الگوریتم Brotli توسط شرکت گوگل ارائه شد و بعلت کارآیی فوق‌العاده‌اش به سرعت همه‌گیر شد، این الگوریتم در مقایسه با GZIP قدرت بیشتری دارد.

 

Enable Compression: این پارامتر به صورت انتخاب از دکمه رادیویی است و فشرده سازی نوع GZIP/Brotli را برای انواع فایل‌های استاتیک و داینامیک فعال می‌کند. این گزینه در حالت پیش فرض فعال است

نکته فعال کردن آن موجب کاهش پهنای باند مصرفی شبکه می‌شود. فایل‌های مبتنی بر متن مانند html ، css و javascript تا 50% میتوانند کاهش حجم داشته باشند که این خیلی عالی است.

Compressible Types: مشخص می‌کند چه نوعی از MIMEها فشرده شوند. بهتر است unset باشد یا تنظیمات default گذاشته شود تا mime-typesهای پیش فرض سرور استفاده شود زیر تقریباً اکثر آنها را پوشش می‌دهد.

مقادیر پیش فرض: text/*,application/x-javascript,application/javascript,application/xml,image/svg+xml,application/rss+xml, application/json,application/vnd.ms-fontobject,application/x-font,application/x-font-opentype, application/x-font-truetype,application/x-font-ttf,font/eot,font/opentype,font/otf,font/ttf,image/x-icon, image/vnd.microsoft.icon,application/xhtml+xml

مثال: اگر قصد تغییر آنها را دارید و می‌خواهید نوع خاصی را حذف کنید از علامت ! استفاده کنید بعنوان مثال می‌خواهید نوع text/* فشرده شود اما text/css نشود. به رولی شبیه text/*, !text/css نیاز دارید.

نکته فقط از نوع‌هایی استفاده کنید که فشرده سازی GZIP/Brotli برای آنها مفید باشد. فایل‌های باینری مثل عکس‌های gif/png/jpeg یا فایل‌های flash از این فشرده سازی سودی نمی‌برند چون این این نوع فایل‌ها بعلت پسوندشان از قبل فشرده شده‌اند و Brotli در واقع آنها را بزرگتر می‌کند.

Enable GZIP Dynamic Compression: این پارامتر به صورت انتخاب از دکمه رادیویی است و با فعال کردن آم فشرده سازی GZIP پاسخ‌هایی که اتوماتیک تولید می‌شوند را کنترل می‌کند. برای کارکرد درست این پارامتر باید Enable Compression که بعنوان اولین پارامتر این بخش توضیح داده شد، فعال باشد.

نکته این پارامتر بهره وری رَم و سی‌پی‌یو را افزایش می‌دهد و موجب ذخیره‌ی پهنای باند شبکه می‌شود.

GZIP Compression Level (Dynamic Content): این پارامتر از نوع عددی بین 1 تا 9 است و مشخص کننده‌ی سطح فشرده‌سازی الگوریتم GZIP که روی محتوای داینامیک اعمال می‌شود. این پارامتر از رنج 1 (کمترین فشرده‌سازی ) تا 9 (بیشترین فشرده‌سازی ) تغییر می‌کند. برای اعمال این پارامتر باید Enable Compression و Enable GZIP Dynamic Compression که پیش‌تر توضیح داده شدند، فعال باشند. مقدار پیش فرض این پارامتر 6 است.

نکته سطح فشردگی بالا از CPU و memory بیشتری استفاده می‌کند. اگر از سرور قدرتمندی استفاده می‌کنید میتوانید این پارامتر را روی مقادیر بالا سِت کنید اما تفاوت محسوسی بین رنج 6 و 9 نیست اما 9 از CPU cycles خیلی بیشتری استفاده می‌کند.

Brotli Compression Level (Dynamic Content): این پارامتر از نوع عددی بین 0 تا 6 است و سطح فشرده‌سازی برای الگوریتم Brotli که روی responsesهای پویا اعمال می‌‌شود را مشخص میکند. رنج این پارامتر از 0 (غیرفعال شدن فشرده‌سازی) تا 6 ( بیشترین فشرده‌سازی ) است. این تنظیمات زمانی اعمال می‌شود که Enable Compression فعال باشد.

Auto Update Static File: این پارامتر مشخص می‌کند آیا ورژن‌های فشرده‌سازی GZIP/Brotli روی فایل‌های استاتیک بصورت اتوماتیک ایجاد یا آپدیت شود یا خیر؟ اگر این پارامتر به Yes تنظیم شود، زمانیکه یک فایل با MIME type موجود در Compressible Typesها درخواست داده می‌شود، سرور الگوریتم فشرده‌سازی متناسب با آن فایل را براساس نوع فایل ایجاد یا آپدیت می‌کند. فشرده‌سازی فایل در Static Cache Directory یا همان دایرکتوری کش ثابت انجام می‌شود نام فایل هم براساس MD5 hash از مسیر فایل اصلی ایجاد می‌شود.

GZIP Compression Level (Static File): این پارامتر از نوع عددی بین 1 تا 9 است و سطح فشرده‌سازی الگوریتم GZIP روی محتوای استاتیک را مشخص می‌کند. این پارامتر از رنج 1 (کمترین فشرده‌سازی) تا 9 (بیشترین فشرده‌سازی) تغییر می‌کند. برای اعمال این تنظیمات باید پارامترهای Enable Compression و Auto Update Static File فعال باشند. مقدار پیش‌فرض این پارامتر 6 است.

Brotli Compression Level (Static File): این پارامتر از نوع عددی بین 1 تا 11 است و سطح فشرده‌سازی الگوریتم Brotliی که روی فایل‌های استاتیک اعمال میشود را مشخص میکند. رنج این پارامتر از 1 (کمترین فشرده‌سازی ) تا 11 ( بیشترین فشرده‌سازی) است. این تنظیمات زمانی اعمال می‌شود که Enable Compression فعال باشد. مقدار پیش فرض این پارامتر 5 است. برای اعمال این پارامتر باید Enable Compression و Auto Update Static File فعال باشند.

نکته این پارامتر میزان پهنای باند شبکه کمتری مصرف می‌کند. پاسخ‌های مبتنی بر متن مثل فایل‌های html, css و javascript بیشترین میزان بهره‌وری از این قابلیت را دارند و می‌توانند تا 50 درصد  نسبت به فایل اصلی فشرده شوند.

Static Cache Directory: این پارامتر از نوع مسیر دایرکتوری است و مشخص کننده مسیر دایرکتوری‌ای است که برای ذخیره‌ی فایل‌های استاتیک فشرده شده استفاده می‌شود. این دایرکتور بصورت پیش فرض SWAP است.

Max Static File Size (bytes): این پارامتر از نوع عددی و در واحد بایت میباشد. ماکسیمم سایز یک فایل استاتیک است برای فشرده‌سازی اتوماتیک را مشخص می‌کند. مقدار پیش فرض آن 10M است و این پارامتر مقادیر نباید کمتر از 1K (در مقیاس بایت) باشد.

نکته پبشنهاد می‌شود که فشرده‌سازی فایل برای فایل‌های بزرگ ایجاد یا آپدیت نشود.

 

Min Static File Size (bytes): مینیمم سایز یک فایل استاتیک برای اجرای الگوریتم فشرده‌سازی مرتبط را مشخص می‌کند. مقدار پیش فرض 200 بایت است و بهتر است از این مقدار کمتر نباشد.

نکته فشرده‌سازی فایل‌ها با سایز خیلی کوچک ضروری نیست زیرا پهنای باند زیادی مصرف نمی‌کنند.

 

تنظیمات کلی SSL

بخش SSL Global Setting از Tuning لایت اسپید مربوط به تنظیمات گواهینامه‌های SSL است که روی وب سایت‌ها نصب می‌شوند.

تنظیمات لایت اسپید

 

 

Default Cipher Suite:  این پارامتر الگوریتم Cipher Suite پیش‌فرض مورد استفاده برای گواهینامه‌های ssl را مشخص میکند و ورودی آن بصورت Cipher مدنظر است و Cipher ها با ; جدا میشوند.

Cipher Suite ها مجموعه ای از الگوریتم ها و دستورالعمل‌هایی هستند که برای استفاده از TLS و SSL به جهت امن کردن اتصالات شبکه استفاده می‌شوند.

بیشتر بخوانید:  ساخت وب سایت های ایزوله شده در NGINX با PHP-FPM

SSL Strong DH Key: این پارامتر مشخص میکند که از DH keys با 2048 بیت برای پروسه دست دهی SSL (SSL Handshake) استفاده شود  یا از 4096بیتی. این پارامتر ازنوع انتخابی از دکمه رادیویی است.

DH Key کلیدی است که مبتنی برا الگوریم Diffie-Hellman ایجاد میشود و در  SSL/TLS استفاده می‌شود.

Enable Certificate Compression: قابلیت فشرده سازی SSL را فعال می‌کند. این پارامتر ازنوع انتخابی از دکمه رادیویی است.

 

Enable Handshake Offload: این پارامتر ازنوع انتخابی از دکمه‌های رادیویی است. با فعالی سازی این پارامتر پروسه Handshake SSL در یک thread جداگانه بارگیری می‌شود. بصورت پیش فرض نیز فعال است.

 

Enable Session Cache: این پارامتر ازنوع انتخابی از دکمه‌های رادیویی است، قابلیت کَش کردن شناسه جلسه یا همان session id را با استفاده از تنظیمات پیش‌فرض OpenSSL مجاز می‌کند و بصورت پیش‌فرض غیرفعال است.

 

Session Cache Size (bytes): این پارامتر از نوع عددی است و ماکسیمم تعداد شناسه جلسه‌های SSL ( SSL session IDs) که میتوان در کَش ذخیره کرد را مشخص می‌کند. مقدار پیش فرض 1.000.000 است.

 

Session Cache Timeout (secs):  این پارامتر از نوع عددی است و مشخص کننده‌ مدت زمانی که یک شناسه‌ی جلسه (session ID) داخل cache معتبر است و بعد از آن برای ادمه‌ی session نیاز به مذاکره مجدد هست. مقدار پیش‌فرض این پارامتر 3600 است.

 

Enable Session Tickets: این پارامتر بلیط جلسه یا همان session ticket را با استفاده از تنظیمات session ticket پیش فرض OpenSSL فعال می‌کند. برای اینکه این پارامتر روی هاست‌های مجازی یک سرور ( Server-level) موثر باشد باید تنظیمات مربوط به Server-level فعال باشد. بصورت پیش فرض Server-level و VH-Level فعال هستند.

session ticket قابلیتی که در آخرین تغییرات پروتکل SSL برای پروسه دست‌دهی یا همان handshake اضافه شده است که در یک session ticket اطلاعات کامل مربوط به session ارسال میشود مانند Cipher Suiteی که استفاده می‌شود.

 

SSL Session Ticket Key File: این پارامتر اجازه میدهد که SSL Ticket Key توسط administrator ایجاد یا نگهداری شود. فایل باید 48 بایت باشد و اگر این پارامتر خالی بماند، متعادل کننده بار ( load balancer) مجموعه کلیدهای خود را تولید و نگهداری می‌کند. فرمت این پارامتر نیز بصورت مسیر یک دایرکتوری است.

نکته برای حفاظت از امنیت پیش رو (Forward secrecy)، اکیداً توصیه می‍شود که Key بعد از اتمام ثانیه های مدت عمر SSL Session Ticket تغییر داده شود. اگر نمیتوانید این مورد را کنترل نمائید بهتر است این پارامتر خالی گذاشته شود.

Forward secrecy یک policy جدید از پروتکل HTTPS است که مطابق با این سیاست در صورتی که کلیدهای یک Session یا همان نشست SSL دزدیده شود امکان هک یا دزدیده شدن کلیدهای نشست‌های قبلی و بعدی نخواهد شد. بهمین خاطر برای پارامتر اکیداً توصیه می‌شود که بعد از اتمام Lifetime یک SSL session ticket فایل key تغییر داده شود.

 

QUIC

بخش QUIC از Tuning لایت اسپید ، مربوط به تنظیمات پروتکل QUIC هستند.

تنظیمات لایت اسپید

 

 

QUIC مخفف Quick UDP Internet Connections است که یک روش جدید انتقال است که تاخیر را در مقایسه با TCP کاهش می‌دهد. این پروتکل توسط گوگل طراحی شده و بسیار شبیه TCP+TLS+HTTP/2 است که روی UDP اجرا شوند. که این پارامتر پهه‌ی پروتکل های شبکه‌ای سرور را روی QUIC فعال میکند و بصورت پیش فرض نیز فعال است.

Enable QUIC: این پارامتر پروتکل‌ شبکه‌ای سرور QUIC فعال می‌کند و بصورت پیش‌فرض نیز فعال است.

نکته اگر QUIC فعال شود همچنان در listener level  از طریق  Allow QUIC یا virtual host level از طریق Enable QUIC می‌توان آن را غیرفعال کرد.

 

QUIC SHM Directory: دایرکتوری ذخیره‌ی داده‌های QUIC در حافظه‌ی اشتراکی را مشخص می‌کند. SHM در اینجا مخفف save to shared memory است. دایرکتوری پیش‌فرض /dev/shm است.

نکته برای این پارامتر یک پارتیشن مبتنی بر رَم مانند /dev/shm استفاده می‌شود.

 

QUIC Versions: این پارامتر یک لیستی از ورژن‌های QUIC است. این تنظیمات فقط برای محدود کردن پشتیبانی از ورژن‌های QUIC موجود استفاده می‌شود و بهتر است این فیلد خالی بماند. این پارامتر بصورت ورژن‌هایی از QUIC است که با کاما مجزا می‌شوند. بعنوان مثال: Q035, Q039

نکته اکیداً توصیه می‌شود این پارامتر خالی گذاشته شود تا بهترین تنظیمات بصورت اتوماتیک اعمال شود.

 

Congestion Control: این پارامتر مشخص کننده الگوریتم کنترل ازدحام (congestion control) مورد استفاده است. congestion control مبحثی مربوط به پروتکل‌های شبکه مانند TCP است که از ازدحام بیش از حد داده‌های انتقالی در صف انتظار که موجب از بین رفتن بسته‌ها می‌شود، جلوگیری می‌کند. این پارامتر را میتوان بصورت دستی تنظیم کرد یا اینکه با انتخاب حالت Default روی مقادیر موجود در کتابخانه‌های QUIC تنظیم شود.

 

Connection Flow Control Window: سایز ابتدایی بافر تخصیص داده شده برای یک اتصال QUIC است. مقدار پیشفرش این پارامتر  1.5M است. این پارامتر میتواند بین 64K و 512M تنظیم شود.

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

 

Max Connection Flow Control Window: مشخص کننده ماکسیم سایزی است که به window buffer یک اتصال کنترل ازدحام برای تنظیم سایز windows داده میشود. در واقع windows مفهومی است که در الگوریتم‌های کنترل ازدحام  استفاده می‌شود.

مقدار پیش‌فرض این پارامتر صفر است و به این معنا است که مقدار Connection Flow Control Window (پارامتر قبلی) استفاده می‌شود و auto-tuning یا همان تنظیم خودکار انجام نخواهد شد. این پارامتر میتواند صفر باشد یا به عددی بین 64K و 512M تنظیم شود.

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

 

Stream Flow Control Window: مقدار اولیه‌ای از داده‌ها که برای یک ارتباط QUIC در هر استریم دریافت خواهد کرد. مقدار پیش فرض این پارامتر 1M است. این پارامتر میتواند عددی بین 64K و 128M بگیرد.

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

 

Max Stream Flow Control Window: مشخص کننده‌ی ماکسیمم سایز window از یک استریمِ کنترل جریان (stream flow control window) است که برای تنظیم خودکار window مجاز است.

مقدار پیش فرض صفر است و به این معنا است که مقدار Stream Flow Control Window استفاده می‌شود و auto-tuning یا همان تنظیم خودکار انجام نخواهد شد. این پارامتر می‌تواند عددی بین

64K و 128M بگیرد.

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

Max Concurrent Streams Per Connection: ماکسیمم تعداد مجاز استریم در هر ارتباطِ QUIC است. مقدار پیشفرض این پارامتر نیز 100 است و بصورت کلی یک عدد Integer در بازه 10 تا 100 میگیرد.

 

Handshake Timeout: مدت زمانی به ثانیه که به یک اتصال جدید QUIC داده می‌شود تا پروسه handshake را کامل کند و بعد از آن اتصال قطع می‌شود. (aborted ) مقدار پیش فرض نیز 10 است. بصورت کلی یک عدد Integer در بازه 1 تا 15 میگیرد.

 

Idle Timeout : این پارامتر از نوع Integer است و عددی بین 10 تا 30 به ثانیه می‌گیرد و مشخص کننده مدت زمانی است که اگر در طول این بازه یک اتصال QUIC بیکار باشد، بسته می‌شود. مقدار پیش‌فرض این پارامتر 30 است.

واکنش شما چیست؟
+1
+1
+1
+1
+1
+1
+1

نظر دهید

آدرس ایمیل شما منتشر نخواهد‌شد.