farid

مدیر کل انجمن
عضو کادر مدیریت
مدیر کل انجمن
عضویت
20/5/15
ارسال ها
453
امتیاز
10
وب سایت
faraso.org
KeepAlive چیست؟
روشی برای حفظ کانکشن قبلی برای استفاده در درخواست های جدید است و بدینگونه از ایجاد کانکشن tcp جدید برای درخواست جدید جلوگیری می شود.
به عبارت ساده تر یک ارتباط بین وب سرور و وب بروزر شما است بر این اساس که در یک زمان وب بروزر از طریق یک کانکشن می تواند درخواست بیش از یک فایل را ارسال کند.
به KeepAlive کانکشن دائم نیز گفته می شود.
در عکس زیر می توانید شمای کلی در زمان فعال سازی و عدم فعال سازی KeepAlive را مشاهده کنیدkeep-alive-enabled.png
چرا از keep-alive استفاده می کنیم؟
برای نمایش یک صفحه از وب سایت باید درخواست های متعددی از وب بروزر به وب سرور ارسال شود. برای دریافت فایل از وب سرور یک اتصال کوتاه از طریق وب بروزر به وب سرور ارسال می شود و وب بروزر از وب سرور سوال می کند که آیا فایل موجود است یا خیر، در واقع وب بروز ابتدا HTML وب پیج مورد نظر را دریافت می کند و سپس برای فایل هایی نظیر css ، جاوا اسکریپت و عکس ها و ... درخواست ارسال می کند و در نتیجه به ازای هر یک از این درخواست ها در صورت عدم فعال بودن KeepAlive یک درخواست جدید ایجاد می شود و اگر تعداد فایل های موجود در HTML نظیر عکس و css و ... زیاد باشد اثر منفی در سرعت لود سایت خواهد داشت اما با فعال سازی KeepAlive از سربار ایجاد کانکشن مجدد جلوگیری می شود.
چگونه keep-alive را فعال کنیم؟
keep-alive
با ارسال "Connection: Keep-Alive" در هدر HTTP فعال می شود و نحوه فعال سازی آن با توجه به وب سروری که شما استفاده می کنید متفاوت می باشد. در ادامه به نحوه فعال سازی KeepAlive در وب سرور ها مختلف و متد های مختلف معمول خواهیم پرداخت.

نحوه فعال سازی KeepAlive با استفاده از .httacess
برای فعال سازی keep-alive با استفاده از httacess مقدار زیر را به فایل httacess خود اضافه کنید. این مقدار پیش فرض وب سرور را بازنویسی می کند.
کد:
<ifModule mod_headers.c> Header set Connection keep-alive </ifModule>

فعال سازی keep-alive در Apache ( آپاچی )
برای فعال سازی KeepAlive در آپاچی مقادیری مشابه زیر در تنظیمات آپاچی انجام دهید:
کد:
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 100

پس از تغییرات وب سرور آپاچی را ریستارت کنید تا تغییرات اعمال شود.

نحوه فعال سازی keep-alive در NginX
برای فعال سازی KeepAlive در NginX پارامتر keepalive را به فایل upstream تنظیمات خود اضافه کنید:
کد:
upstream your_upstream {
  # The keepalive parameter sets the maximum number of idle keepalive connections
  # to upstream servers that are preserved in the cache of each worker process. When
  # this number is exceeded, the least recently used connections are closed.
  keepalive 100;

  server 1.2.3.4:80;
  server 1.2.3.5:80;
  ...
}

بعد از تغییرات وب سرور NginX را ریستارت کنید تا تغییرات اعمال شود.

برای اطلاعات بیشتر به اینجا و اینجا مراجعه کنید.
 

AHMAD

ایران وب ادمین
عضو کادر مدیریت
ناظر انجمن
عضویت
28/1/15
ارسال ها
145
امتیاز
6
محل سکونت
Matt Cutts Office
وب سایت
www.rastana.com
KeepAlive چیست؟
روشی برای حفظ کانکشن قبلی برای استفاده در درخواست های جدید است و بدینگونه از ایجاد کانکشن tcp جدید برای درخواست جدید جلوگیری می شود.
به عبارت ساده تر یک ارتباط بین وب سرور و وب بروزر شما است بر این اساس که در یک زمان وب بروزر از طریق یک کانکشن می تواند درخواست بیش از یک فایل را ارسال کند.
به KeepAlive کانکشن دائم نیز گفته می شود.
در عکس زیر می توانید شمای کلی در زمان فعال سازی و عدم فعال سازی KeepAlive را مشاهده کنیدمشاهده پیوست 162
چرا از keep-alive استفاده می کنیم؟
برای نمایش یک صفحه از وب سایت باید درخواست های متعددی از وب بروزر به وب سرور ارسال شود. برای دریافت فایل از وب سرور یک اتصال کوتاه از طریق وب بروزر به وب سرور ارسال می شود و وب بروزر از وب سرور سوال می کند که آیا فایل موجود است یا خیر، در واقع وب بروز ابتدا HTML وب پیج مورد نظر را دریافت می کند و سپس برای فایل هایی نظیر css ، جاوا اسکریپت و عکس ها و ... درخواست ارسال می کند و در نتیجه به ازای هر یک از این درخواست ها در صورت عدم فعال بودن KeepAlive یک درخواست جدید ایجاد می شود و اگر تعداد فایل های موجود در HTML نظیر عکس و css و ... زیاد باشد اثر منفی در سرعت لود سایت خواهد داشت اما با فعال سازی KeepAlive از سربار ایجاد کانکشن مجدد جلوگیری می شود.
چگونه keep-alive را فعال کنیم؟
keep-alive
با ارسال "Connection: Keep-Alive" در هدر HTTP فعال می شود و نحوه فعال سازی آن با توجه به وب سروری که شما استفاده می کنید متفاوت می باشد. در ادامه به نحوه فعال سازی KeepAlive در وب سرور ها مختلف و متد های مختلف معمول خواهیم پرداخت.

نحوه فعال سازی KeepAlive با استفاده از .httacess
برای فعال سازی keep-alive با استفاده از httacess مقدار زیر را به فایل httacess خود اضافه کنید. این مقدار پیش فرض وب سرور را بازنویسی می کند.
کد:
<ifModule mod_headers.c> Header set Connection keep-alive </ifModule>

فعال سازی keep-alive در Apache ( آپاچی )
برای فعال سازی KeepAlive در آپاچی مقادیری مشابه زیر در تنظیمات آپاچی انجام دهید:
کد:
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 100

پس از تغییرات وب سرور آپاچی را ریستارت کنید تا تغییرات اعمال شود.

نحوه فعال سازی keep-alive در NginX
برای فعال سازی KeepAlive در NginX پارامتر keepalive را به فایل upstream تنظیمات خود اضافه کنید:
کد:
upstream your_upstream {
  # The keepalive parameter sets the maximum number of idle keepalive connections
  # to upstream servers that are preserved in the cache of each worker process. When
  # this number is exceeded, the least recently used connections are closed.
  keepalive 100;

  server 1.2.3.4:80;
  server 1.2.3.5:80;
  ...
}

بعد از تغییرات وب سرور NginX را ریستارت کنید تا تغییرات اعمال شود.

برای اطلاعات بیشتر به اینجا و اینجا مراجعه کنید.



سلام

مقادیر MaxKeepAliveRequests و KeepAliveTimeout باید بر چه اساسی تنظیم بشن ؟

بالا بودن این مقادیر به سرور فشار وارد می کند ؟


.
 

farid

مدیر کل انجمن
عضو کادر مدیریت
مدیر کل انجمن
عضویت
20/5/15
ارسال ها
453
امتیاز
10
وب سایت
faraso.org
سلام

مقادیر MaxKeepAliveRequests و KeepAliveTimeout باید بر چه اساسی تنظیم بشن ؟

بالا بودن این مقادیر به سرور فشار وارد می کند ؟


.
MaxKeepAliveRequests بصورت تجربی برای سرور مجازی 100 و برای سرور اختصاصی 150 خوب است مقدار KeepAliveTimeout هم زیر 15 باشه مثلا 5 یا 10 مقدار خوبی میتونه باشه
در مورد فشار روی سرور بستگی داره سرور شما چی است مجازی ، اختصاصی و میزان رم و ... همگی موثر است
 
بالا