keep Alive چیست؟
Keep Alive روشی است که به ما اجازه می دهد همان اتصالی را که برای TCP استفاده می کنیم برای HTTP هم به کار ببریم بدون اینکه مجبور باشیم برای هر درخواست جدید یک اتصال جدید برقرار کنیم.
- به بیان ساده تر، Keep Alive ارتباطی بین وب سرور و مرورگر است که می گوید “تو میتونی هربار بیشتر از یک فایل برداری”
- همچنین Keep Alive به عنوان اتصال مقاوم و ماندگار هم شناخته می شود.
نحوه فعال سازی Keep Alive
- با استفاده از کد “Connection: Keep-Alive” در HTTP header می توانید Keep Alive را فعال کنید.
- اگر Keep Alive فعال نیست، احتمالا در HTTP Header این کد قرار دارد: “Connection:Close”، بنابراین آن را به “Connection: Keep-Alive” تغییر دهید تا فعال شود.
- فعال سازی keep Alive هم به سروری که از آن استفاده می کنید و هم منابعی که به آن دسترسی دارید بستگی دارد.
حال باهم پرکاربردترین روش های فعال سازی keep Alive را بررسی می کنیم:
فعال سازی Keep-alive از طریق فایل .htaccess
اگر به تنظیمات وب سرور خودتون دسترسی ندارید با استفاده از یک فایل .htaccess میتوانید keep-alive رو فعال کنید.
<ifModule mod_headers.c> Header set Connection keep-alive </ifModule>
این کد را به فایل .htaccess و هدر های keep alive را هم به درخواست هاتون اضافه کنید. این تنظیمات جایگزین محدودیت های اکثر وب سرور ها خواهد شد.
enable keep alive در وردپرس
در فایل htaccess سایت کد زیر را اضافه کنید:
TN START ENABLE KEEP ALIVE #
<ifModule mod_headers.c>
Header set Connection keep-alive
<ifModule/>
TN END ENABLE KEEP ALIVE #
فعال سازی Keep-Alive در Apache
اگر به فایل تنظیمات آپاچی دسترسی دارید، از طریق آن می توانید keep-alive را فعال کنید. کد قابل اجرا در این فایل را در زیر مشاهده می کنید:
#
# KeepAlive : توسط این کد می توانید keep-alive را فعال و غیرفعال کنید.(یعنی به بیش از یک درخواست در هر اتصال مجوز دهید). اگر مقابل این کد “Off” قرار دهید، غیرفعال می شود.
#
KeepAlive on
# MaxKeepAliveRequests: بیشترین تعداد درخواست مجاز در هر اتصال مداوم را شخص می کند. اگر مقدار صفر به آن بدهید تعداد درخواست ها بینهایت خواهد شد.
#ما توصیه می کنیم عدد بالایی به آن اختصاص دهید تا بالاترین کارایی رو داشته باشید .
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout : این آیتم، تعداد ثانیه هایی که سرور برای درخواست بعدی یک کلاینت در همان اتصال صبر می کند را مشخص می کند.
#
KeepAliveTimeout 100
فعال سازی Keep-Alive در NGINX
مشکلات Keep alive را می توان با استفاده از HTTPS Core Module برطرف کرد. کد خاصی هست که باید دنبال آن بگردید … “keepalive_disable”. اگر چنین کدی دیدید حتما قبل از اینکه حذفش کنید مطمئن بشید چرا keep-Alive غیرفعال بوده است.
فعال سازی Keep-Alive در Litespeed
به طور پیش فرض Keep-alive در لایت اسپید فعال است مگر اینکه سرور شما از امکانی به اسم keep-alive هوشمند یا smart keep-alive استفاده کرده باشد . keep-alive هوشمند تنظیمی داخل لایت اسپید و مخصوص وب سایت های حجیم است. وقتی این تنظیم فعال باشد، در ابزار pagespeed علامت” keep-alive غیرفعال است” نمایش داده می شود.
Smart keep-alive فایل ابتدایی (فایل HTML) را با بستن اتصال در HTTP Header درخواست می دهد. سپس فایل های دیگر (CSS ، جاوا اسکریپت ، تصاویر و غیره) را با keep-alive فعال درخواست می دهد. این روند باعث می شود وقتی درخواست های هم زمان زیادی وجود دارد، کاربران بیشتری بتوانند به سرور متصل شوند.
جهت غیرفعال کردن keep-alive در محیط ادمین لایت اسپید وارد مسیر Server -> Tuning و مقدار Smart Keep-Alive را به NO تغییر دهید.
نکته) فقط در مورد سرورهای لایت اسپید) : فقط در صورتی که دارای سایت پر ترافیکی هستید می توانید ( و البته بهتر است) smart keep alive را در تنظیمات لایت اسپید غیرفعال کنید. وقتی آن را غیرفعال می کنید تمام اتصالات از keep alive استفاده می کنند.
چطور میتوانم تشخیص دهم keep-alive روی صفحات من فعال است یا خیر؟
وضعیت keep-alive یکی از موارد متعددی است که با ابزار pagespeed می توانید آمار آن را بگیرد.
چرا Keep-alive مورد استفاده قرار می گیرد؟
به زبان ساده، برای اینکه مرورگر بتواند صفحات سایت شما را به بازدید کننده نشان دهد، باید فایل ها را از وب سرور (در هرجایی که قرار دارد) درخواست کند. تصویر زیر شمای خلاصه ای از درخواست فایل توسط مرورگر و پاسخ بله یا خیر وب سرور را نشان می دهد:
مرورگر فایل HTML را می گیرد و می خواند. سپس فایل های دیگری که فایل HTML به آنها اشاره می کند مثل CSS، جاوا اسکریپت و تصاویر را درخواست می دهد.
صفحات وب معمولا مجموعه ای از فایل های متعدد هستند. اگر نیاز باشد برای هر کدام از آن فایل ها، یک اتصال جدید باز شود، آن صفحه وب برای نمایش به زمان بسیار بیشتری نیاز خواهد داشت.
اگر keep-alive فعال نباشد این فرایند زمان دانلود را افزایش داده و منابع سرور را هدر می دهد.
آیا Keep-alive به طور پیش فرض فعال است؟
برخی اشتباها بر این باورند که نیازی نیست نگران فعال کردن keep-alive باشند چون اتصالات HTTP امروزی به طور پیش فرض مقاوم و ماندگار است. (یعنی keep-alive در آنها فعال است)
این حرف درست است اما نه در همه موارد. مثلا افراد زیادی از هاست یا وب سرورهای اشتراکی که اتصالات ناشناس به کاربر را می بندند، استفاده می کنند. این کار برای حفظ کارایی سرور انجام می شود و چون میلیون ها سایت روی هاست اشتراکی وجود دارند، قطعا نیاز است بدانید آیا اتصالات شما keep-alive هست یا خیر. با استفاده از ابزار pagespeed به راحتی می توانید این کار را انجام دهید.
برگرفته از [varvy.com]
There are no comments yet