Keep Alive روشی برای سرعت بخشیدن به دریافت محتوا از سرور است. در این روش، همان اتصالی را که برای TCP استفاده می‌کنیم، برای HTTP هم به‌کار می‌بریم؛ بدون این‌که مجبور باشیم برای هر درخواست جدید یک اتصال نو بین سرور و کلاینت برقرار کنیم. این ویژگی منجربه برقراری یک اتصال پایدار و مقاوم بین کامپیوترهای شبکه می‌شود. اما فکر می‌کنید چگونه این‌کار را انجام می‌دهد و چه مزایایی دارد؟

ما در این مقاله، به این دو پرسش پاسخ خواهیم داد. همچنین با مباحثی مانند نحوه فعالسازی Keep Alive، روش‌های تشخیص فعال بودن و مزایای آن آشنا خواهیم شد.

Keep Alive چیست؟

keep alive چیست

Keep-Alive به‌عنوان یک اتصال دائمی شناخته می‌شود که مسئولیت اصلی آن، ایجاد یک الگوی ارتباطی بین سرور و کلاینت است. 

هدف از فعالسازی Keep Alive، کاهش میزان درخواست‌های HTTP از کلاینت و افزایش سرعت صفحات وب است.

هنگامی‌که Keep-Alive را فعال می‌کنید، کلاینت و سرور توافق می‌کنند که اتصال را برای درخواست‌ها یا پاسخ‌های بعدی باز نگه دارند.

Keep Alive چگونه کار می‌کند؟

به‌طور پیش‌فرض، هر اتصال HTTP در پایان ردوبدل داده‌ها بسته می‌شود. این فرآیند بدان معنا است که کلاینت‌ها یک اتصال جدید را برای درخواست هر فایل یا صفحه جدید ایجاد می‌کنند و سرورها این اتصالات TCP را پس از ارسال داده‌ها می‌بندند.

حال اگر از یک سرور چند تقاضای HTTP شود و هر تقاضا یک فایل و اتصال TCP را بخواهد، زمان بارگذاری صفحه افزایش یافته و سرعت سایت کند می‌شود. این سناریو را در کنار وظیفه اصلی سرور، یعنی پردازش درخواست‌ها به‌طور همزمان تصور کنید؛ موضوعی که روی سرعت سایت و تجربه کاربری تاثیر بسیار بدی می‌گذارد. 

برای غلبه‌بر این مشکل، مدیران وب‌سایت‌ها باید تگ “Keep-Alive” را در کد HTML سایت‌شان بگنجانند تا تعداد اتصالات جدید را محدود کنند.

با فعال کردن Keep-Alive، کلاینت‌ها می‌توانند به‌جای ارسال درخواست برای دریافت یک فایل، تمام محتوای صفحه مانند کدهای جاوااسکریپت، CSS، تصاویر و ویدیوها را از یک اتصال TCP دانلود کنند.

پیش نیازهای فعالسازی Keep Alive

فایلی که باید قبل از فعال کردن HTTP Keep-Alive آماده کنید، به سرور مورد استفاده و میزان دسترسی شما در سایت بستگی دارد.

قبل از فعالسازی Keep Alive مطمئن شوید که به یکی از فایل‌های زیر دسترسی دارید:

نحوه فعال سازی Keep Alive در هاست های مختلف

برای فعال کردن Keep Alive، باید خط زیر را در HTTP header با دسترسی به htaccess. یا فایل پیکربندی اصلی وب سرور خود بنویسید:

Connection: keep-alive

اگر Keep Alive را روشن کنید، بخش “HTTP Response Header” باید عبارت زیر را نشان دهد:

Connection: keep-alive.

در ادامه به فعالسازی Keep Alive در وردپرس، آپاچی، لایت‌اسپید و Nginx می‌پردازیم.

فعال سازی Keep-alive  در فایل .htaccess

اگر به تنظیمات وب سرورتان دسترسی ندارید، با استفاده از یک فایل .htaccess می‌توانید keep-alive را فعال کنید.

<ifModule mod_headers.c>

 Header set Connection keep-alive 

</ifModule>

 

 

 

 

این تنظیمات روی بسیاری از هاست‌های اشتراکی و هاست لینوکس به‌خوبی اجرا می‌شود.

فعالسازی keep alive در وردپرس

در فایل htaccess سایت کد زیر را اضافه کنید:

# TN START ENABLE KEEP ALIVE

<ifModule mod_headers.c>

Header set Connection keep-alive

</ifModule>

# TN END ENABLE KEEP ALIVE

 

 

 

 

 

 

این کد را بعد از آخرین خط در فایل htaccess. خود اضافه کنید. نوشتن این کدها، هدرهای HTTP Keep-Alive را اضافه می‌کند که باعث فعالسازی Keep Alive در وردپرس می‌شوند.

هاست وردپرس

با هاست وردپرس ایران‌سرور، سرعت فوق‌العاده و امنیت پولادین را تجربه کنید.

خرید هاست وردپرس

فعال سازی Keep-Alive در Apache

در سرور آپاچی نسخه‌های جدید، Keep-Alive به‌صورت خودکار فعال می‌شود. اگر فعال نیست، فایل پیکربندی سرور Apache HTTP (httpd.conf) سرورتان را پیدا کنید. برای کسب اطلاعات بیشتر درباره سرور آپاچی، به مقاله (آپاچی چیست؟) مراجعه کنید.

ممکن است این فایل در مسیر زیر باشد:

/etc/httpd/conf/httpd.conf

سپس کد زیر را در آن قرار دهید.

# Set it On to enable Keep-Alive, Off to disable Keep-Alive

KeepAlive On

# Set maximum requests per connection, set 0 for unlimited request, 100 request per connection is ideal

MaxKeepAliveRequests 100

# Set per connection timeout for next request

KeepAliveTimeout 15

 

 

 

 

 

 

 

پارامترهای این کد عبارتنداز:

فعال سازی Keep-Alive در NGINX

تا حد زیادی Keep Alive در تمام سرورهای NGINX به‌طور پیش‌فرض فعال است. بااین‌حال اگر این قابلیت در NGINX سرور شما فعال نیست، می‌توانید با یافتن «keepalive_disable» در ماژول هسته NGINX (ngx_http_core_module)، وضعیت آن را بررسی کنید.

فعال سازی Keep-Alive در Litespeed

به‌طور پیش‌فرض Keep-alive در لایت‌اسپید (لایت اسپید چیست؟) فعال است؛ مگر این‌که سرورتان از امکانی به‌اسم Keep-Alive هوشمند یا Smart Keep-Alive استفاده کرده باشد. این قابلیت برای وب‌سایت‌های حجیم با ترافیک بالا تعبیه شده است.

برای فعالسازی Keep Alive در لایت اسپید، به بخش پیکربندی سرور یا “Server Configuration” بروید. سپس از قسمت “Tuning” یا تنظیم، گزینه “Enable Keep-Alive” را علامت‌دار کنید.

با تنظیم پارامتر “Timeout” هم می‌توانید مشخص کنید که سرور چه مدت پس از آخرین درخواست، اتصال را باز نگه دارد.

جهت غیرفعال کردن keep-alive در محیط ادمین لایت اسپید وارد مسیر Server -> Tuning و مقدار Smart Keep-Alive را به NO تغییر دهید.

فعالسازی Keep-Alive در ویندوز سرور (IIS)

اگر از هاست ویندوز استفاده می‌کنید، افزونه Keep-Alive را از خط فرمان فعال کنید.

دستور زیر آن را فعال می‌کند:

appcmd set config /section:httpProtocol /allowKeepAlive:true

 

 

غیرفعالسازی Keep Alive در هاست ویندوز هم با کد زیر انجام می‌شود:

appcmd set config /section:httpProtocol /allowKeepAlive:false

 

 

۳ روش تشخیص فعال بودن keep-alive روی سایت

برای تشخیص فعال بودن قابلیت Keep Alive در هاست ووکامرس یا هر سرور دیگری، به سه روش زیر عمل کنید.

  1. مراجعه به سایت PageSpeed Insight
  2. چک کردن با کمک سایت GTMetrix
  3. مراجعه به سایت KeyCDN’s HTTP Header Checker

بیشتر بخوانید:  آموزش رفع خطای Make fewer HTTP requests در GTmetrix با ۱۲ راهکار موثر

۶ مزیت Keep Alive

فعال کردن Keep-Alive مزایای مهمی دارد که در ادامه با آن‌ها آشنا خواهید شد.

keep alive در سرور

۱. کاهش مصرف CPU و حافظه

استفاده از اتصالات مداوم به کاربران هاست‌ها اجازه می‌دهد تا درخواست‌های HTTP کمتری ایجاد شود. بنابراین استفاده از منابع سرور کاهش یافته و هدر نمی‌روند.

۲. HTTP Pipelining

یک کلاینت می‌تواند درخواست‌ها را از همان اتصال TCP، بدون منتظر ماندن برای پاسخ‌گویی سرور ارسال کند.

۳. پشتیبانی توسط مرورگرهای مدرن 

بسیاری از مرورگرها تا زمانی که سرورهای مقصد از Keep-Alive پشتیبانی می‌کنند، به‌طور خودکار از این نوع اتصالات بهره می‌برند. یک مرورگر مدرن به‌طور معمول، شش اتصال در هر دامنه را امکان‌پذیر می‌کند.

۴. افزایش رتبه در موتورهای جست‌وجو 

فعالسازی Keep-Alive عملکرد سایت را بهبود می‌بخشد. به‌همین‌علت، با فعال کردن این قابلیت شاهد بهبود رتبه سایت در گوگل و افزایش رضایت کاربران از سایت‌مان خواهیم بود.

۵. کاهش ازدحام شبکه 

کاهش تعداد اتصالات TCP بین سرورها و کلاینت‌ها، باعث آزاد شدن پهنای باند شبکه می‌شود.

۶. بهبود عملکرد SSL/TLS 

با فعال کردن Keep-Alive روی انواع سرورها، یک اتصال SSL/TLS فقط یک‌بار باز می‌شود. بنابراین نیاز به Handshake اضافی حذف شده و تاخیر سایت به حداقل می‌رسد.

گواهینامه SSL 

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

خرید گواهینامه ssl

۵ ضعف Keep Alive

درحالی‌که اتصالات Keep Alive مزایای عملکردی قابل‌توجهی را ارائه می‌دهند، اما با معایبی هم همراه هستند. لیست این معایب را در ادامه می‌خوانید.

۱. افزایش بار سرور

باز نگه داشتن اتصالات، منابع سرور مانند حافظه را مصرف می‌کند. این جنبه منفی Keep Alive می‌تواند عملکرد کلی سرور را تحت تاثیر قرار دهد؛ به‌خصوص در بارهای ترافیکی بالا.

به‌علاوه‌که اگر اتصالات برای مدت طولانی باز نگه داشته شوند، ممکن است استفاده موثری از آن‌ها نشود. این موضوع باعث کم شدن عملکرد مطلوب خواهد شد.

۲. احتمال حملات انکار سرویس (DoS):

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

۳. افزایش پیچیدگی

متاسفانه قابلیت کارآمد Keep Alive تاثیر منفی روی پیاده‌سازی، مدیریت و پیکربندی اتصالات می‌گذارد. اتفاقی که نظارت دقیق بر عملکرد منابع و اطمینان از امنیت سرویس را پیچیده و سخت می‌کند.

۴. مشکلات سازگاری

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

۵. تراکم شبکه

Keep Alive می‌تواند تعداد اتصالات را کاهش دهد؛ اما هم‌چنان هم روی ترافیک کلی شبکه تاثیر منفی گذاشته و آن را افزایش می‌دهد؛ به‌خصوص اگر اتصالات برای مدت طولانی باز نگه داشته شوند.

آنچه در Keep Alive خواندیم

فعال کردن Keep-Alive یک راه عالی برای بهینه‌سازی وب‌سایت است؛ چون  به بهبود سرعت و عملکرد آن کمک می‌کند تا بارگذاری سریع‌تر شده و کارایی افزایش یابد. با فعال کردن Keep-Alive در Header سایت، کلاینت و سرور می‌توانند از یک اتصال TCP برای تعدادی از درخواست‌ها و پاسخ‌های پرتکرار استفاده کنند. این موضوع سرعت سایت، رضایت کاربران و افزایش رتبه در موتورهای جست‌وجو را به‌همراه دارد. 

شما درباره فعالسازی Keep Alive چه فکر می‌کنید؟ آیا تابه‌حال این قابلیت را در سایت‌تان چک کرده‌اید؟ می‌توانید همین حالا پاسخ و دیدگاه ارزش‌مندتان را در بخش نظرات بنویسید تا تیم ایران سرور و سایر مخاطبان از آن بهره ببرند. 

منابع:

سوالات متداولی که شما می‌پرسید

  1. Keep Alive چیست؟

Keep Alive قابلیتی است که در هدر سایت فعال می‌شود و سرعت بارگذاری صفحات را بالا می‌برد.

  1. مزایای Keep Alive چیست؟

افزایش رتبه در موتورهای جست‌وجو، کاهش مصرف منابع سخت‌افزاری سرور و ازدحام شبکه ازجمله مزایای استفاده از Keep Alive در سرور هستند.

  1. چگونه Keep Alive را در سرور فعال کنیم؟

از کد Connection: keep-alive در هدر سرور برای فعالسازی این قابلیت استفاده کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *