Keep Alive روشی برای سرعت بخشیدن به دریافت محتوا از سرور است. در این روش، همان اتصالی را که برای TCP استفاده میکنیم، برای HTTP هم بهکار میبریم؛ بدون اینکه مجبور باشیم برای هر درخواست جدید یک اتصال نو بین سرور و کلاینت برقرار کنیم. این ویژگی منجربه برقراری یک اتصال پایدار و مقاوم بین کامپیوترهای شبکه میشود. اما فکر میکنید چگونه اینکار را انجام میدهد و چه مزایایی دارد؟
ما در این مقاله، به این دو پرسش پاسخ خواهیم داد. همچنین با مباحثی مانند نحوه فعالسازی 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 مطمئن شوید که به یکی از فایلهای زیر دسترسی دارید:
- htaccess: یک فایل پیکربندی (Configuration File) در دایرکتوری که میتواند برای تغییر عملکردها و ویژگیهای سایتهای میزبانیشده در آپاچی استفاده شود؛
- httpd.conf: فایل پیکربندی اصلی آپاچی. توجه داشته باشید که اگر وبسایت شما روی هاست اشتراکی اجرا میشود، ممکن است به این فایل دسترسی نداشته باشید؛
- nginx.conf: فایل پیکربندی اصلی وبسرور NGINX؛
نحوه فعال سازی 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 |
پارامترهای این کد عبارتنداز:
- KeepAlive: فعالسازی Keep Alive در آپاچی یا غیرفعال کردن آن. مقدار “off” معادل غیرفعال و مقدار “on” معادل فعال بودن Keep Alive
- MaxKeepAliveRequests: مشخص کردن بیشترین تعداد درخواست مجاز در هر اتصال مداوم. مقدار صفر برابر تعداد بینهایت درخواست
- KeepAliveTimeout: مشخص کردن ثانیههای سرور در فرآیند صبر کردن برای دریافت درخواست بعدی از کلاینت در همان اتصال
فعال سازی 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 در هاست ووکامرس یا هر سرور دیگری، به سه روش زیر عمل کنید.
- مراجعه به سایت PageSpeed Insight
- چک کردن با کمک سایت GTMetrix
- مراجعه به سایت KeyCDN’s HTTP Header Checker
بیشتر بخوانید: آموزش رفع خطای Make fewer HTTP requests در GTmetrix با ۱۲ راهکار موثر
۶ مزیت 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 چه فکر میکنید؟ آیا تابهحال این قابلیت را در سایتتان چک کردهاید؟ میتوانید همین حالا پاسخ و دیدگاه ارزشمندتان را در بخش نظرات بنویسید تا تیم ایران سرور و سایر مخاطبان از آن بهره ببرند.
منابع:
سوالات متداولی که شما میپرسید
- Keep Alive چیست؟
Keep Alive قابلیتی است که در هدر سایت فعال میشود و سرعت بارگذاری صفحات را بالا میبرد.
- مزایای Keep Alive چیست؟
افزایش رتبه در موتورهای جستوجو، کاهش مصرف منابع سختافزاری سرور و ازدحام شبکه ازجمله مزایای استفاده از Keep Alive در سرور هستند.
- چگونه Keep Alive را در سرور فعال کنیم؟
از کد Connection: keep-alive در هدر سرور برای فعالسازی این قابلیت استفاده کنید.
