آموزش رفع خطاي Enable Keep Alive
از سري مقالات آموزش كامل سايت gtmetrix به رفع خطاي pagespeed سايت جي تي متريكس پرداختيم. در مقاله قبل به رفع خطاي Defer parsing of JavaScript و Prefer asynchronous resources در سايت GTmetrix پرداختيم. امروز در بخش رفع خطاهاي pagespeed به آموزش رفع خطاي Enable Keep Alive خواهيم پرداخت. آموزش نحوه رفع ارور Enable Keep Alive با فعال سازي keep alive در سي پنل را نيز بيان خواهيم كرد.
لازم به ذكر است كه اين خطا بشدت روي سرعت سايت شما تاثير ميگذارد. بنابراين با رفع اين خطا كه بخشي از آن به سمت سرور بازميگردد، سرعت سايت چندين برابر ميشود. اگر در فكر افزايش سرعت سايت خود هستيد در ادامه اين مقاله با ما همراه باشيد.
در اين مقاله به موضوعات زير خواهيم پرداخت :
1 خلاصهي از خطاي Enable Keep-Alive
2 Keep Alive چيست
3 آيا Enable Keep Alive بصورت پيش فرض فعال است؟
4 چگونه Keep Alive را فعال كنيم
4.1 فعال سازي Keep Alive با استفاده از htaccess
4.2 فعال سازي Keep Alive در Apache
4.3 فعال سازي Keep-Alive در NGINX
4.4 فعال سازي Keep-Alive در Litespeed
خلاصهي از خطاي Enable Keep-Alive
نام: Enable Keep-Alive
نوع: مربوط به سرور
اولويت: بالا
ميزان سختي: راحت
ميانگين امتياز: 93%
Keep Alive چيست
Keep Alive نحوه ارتباط و درخواست بين سرور و مرورگر است. اين موضوع بيان كننده اين است كه آيا مرورگر ميتواند بيشتر از يك فايل را با يك درخواست از سرور بگيرد يا خير.
طبيعتا براي باز شدن هر سايتي مرورگر درخواست هايي را براي سرور ارسال ميكند و سرور نيز براي درخواست ها پاسخ بله يا خير را ارسال ميكند و بدين ترتيب فايل هايي كه موجود باشد را سرور براي مرورگر ارسال ميكند و سايت روي مرورگر باز ميشود. براي باز شدن هرصفحه وب سايت تعداد زيادي درخواست از سمت مرورگز به سمت سرور ارسال ميشود كه اگر تعداد و زمان ارسال و دريافت اين درخواست ها زياد باشد براي يك سايت فاجعه است و سرعت باز شدن سايت بسيار زياد ميشود.
براي باز شدن صحيح هر سايتي بايد تمام فايل هاي آن بصورت كامل و دقيق از سرور توسط مرورگر دريافت شود. در مرحله اول مرورگر فايل HTML را درخواست ميكند. پس از آن به سراغ مابقي فايل ها ميرود. فايل هايي مانند JS و CSS و تصاويري كه داخل صفحات قرار دارد را فراخواني ميكند. دقيقا در اين قسمت است كه اهميت Keep Alive مشخص ميشود. اگر Keep Alive فعال نباشد مرورگر نميتواند با يك درخواست همه فايل ها را فراخواني كند. بدين ترتيب مرورگر براي هر فايل مجبور است يك درخواست جداگانه ارسال نمايد و باتوجه به اينكه سرور نيز بايد براي هر درخواست يك پاسخ جداگانه ارسال نمايد، زمان فراخواني فايل ها زياد ميشود و سرعت سايت بشدت كاهش ميابد. صفحات هر سايتي داراي تعداد زيادي فايل است كه اگر براي هر كدام درخواست جداگانه ارسال شود قطعا باعث كاهش سرعت سايت خواهد شد.
حال در نظر بگيريد اگر Keep Alive فعال باشد مرورگر ميتواند همه فايل ها را بصورت يكجا درخواست نمايد و سرور نيز تمام فايل ها را با يك درخواست ارسال مينمايد.
مثال تصويري از رفع خطاي Enable Keep Alive
تصوير زير قبل و بعد از آموزش رفع خطاي Enable Keep Alive را نمايش ميدهد.
تا اينجاي كار متوجه شديم كه Keep Alive چيست و هميتن فعالسازي Keep Alive را متوجه شديم. همانطور كه ميدانيد در رفع خطاهاي سايت GTMETRIX نوشته شده Enable Keep Alive، پس بايد Keep Alive را فعال نماييد. اما چگونه ؟
آيا Enable Keep Alive بصورت پيش فرض فعال است؟
اين موضوع كه آيا Enable Keep Alive بصورت پيش فرض فعال است؟ بصورت پيش فرض فعال است يا خير يك موضوع نسبي است و كاملا به هاست و فضاي ميزباني كه از آن استفاده مينماييد دارد. به همين خاطر بصورت دقيق نميتوان در اين مورد اظهار نظر كرد. اما موضوعي كه مهم است اين است كه با ابزار gtmetrix يا page speed tool به راحتي ميتوان متوجه اين موضوع شد.
چگونه Keep Alive را فعال كنيم
Keep Alive با استفاده از HTTP هدر Connection: Keep-Alive فعال ميشود.
اگر Keep Alive فعال نشد، احتمالا HTTP Header هاي شما وضعيت connection: close را دارند.
براي فعال شدن Keep Alive وضعيت آن را به connection: Keep-Alive تغيير دهيد.
فعال سازي Keep Alive وابسته به سرور مورد استفاده توسط شما و دسترسي هايي است كه داريد. به بيشتر موارد در ادامه خواهيم پرداخت. (هشدار: اگر متخصص نيستيد لطفا اين مورد را به يك فردي كه تسلط كافي بر روي هاست و سرورها دارد بدهيد.)
فعال سازي keep alive در سي پنل
فعال سازي Keep Alive با استفاده از htaccess
اگر به فايل config وب سرور خود دسترسي نداريد، مي توانيد Keep Alive را با استفاده از فايل .htaccess فعال كنيد.
Header set Connection keep-alive
افزودن كد بالا به فايل htaccess باعث ميشود تا در header ها Keep Alive را به درخواست هاي شما اضافه كند، كه البته بيشتر وب سرورها يا محدوديتهايي را تعيين كردن تا كد بالا را بازنويسي (override) ميكند. لطفا توجه داشته باشيد كه ممكن است بعد از وارد كردن دستور بالا با ارور 500 روبهرو شويد و علت اين است كه سرور شما با دستور بالا سازگاري لازم را ندارد. فعال سازي keep alive در سي پنل به همين سرعت قابل انجام است.
فعال سازي Keep Alive در Apache
اگر به فايل پيكربندي Apache دسترسي داريد، مي توانيد Keep Alive را در آنجا فعال كنيد. قسمت هاي مربوطه در زير نشان داده شده اند.
#
# 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
مشكلات Keep Alive را ميتوان با HTTPCoreModule برطرف كرد. دستور keep-alive-disable وجود دارد كه بايد مراقب آن باشيد، اگر اين دستور را مشاهده كرديد، مطمئن شويد قبل از حذف آن دليل غير فعال بودنش توسط هاستينگ را ميدانيد.
فعال سازي Keep-Alive در Litespeed
Keep Alive به صورت پيشفرض فعال ميباشد، اما ممكن است سرور شما از چيز ديگري به اسم smart keep-alive استفاده مي كند. smart keep-alive يكي از تنظيمات داخل Litespeed است كه به طور مشخصي براي وبسايتهاي با حجم بالا مورد استفاده قرار ميگيرد. هنگامي كه اين گزينه فعال باشد، در قسمت page speed tools گزينهاي ظاهر ميشود كه نشان ميدهد Keep Alive غير فعال است. smart keep-alive فايل اوليه را با connection close در HTTP header درخواست خواهد كرد. سپس فايلهاي ديگر را با فعال كردن Keep Alive درخواست ميكند. اين گزينه باعث ميشود هنگامي كه درخواستهاي زيادي وجود دارند، كاربران بيشتري بتوانند همزمان متصل شوند.
نكته: بجز در مواقعي كه ترافيك سايت بالايي داريد، ميتوانيد smart keep-alive را در config غير فعال كنيد و هنگامي كه اين كار را انجام داديد تمام ارتباطات شما از Keep Alive استفاده خواهند كرد. اگر مطمئن نيستيد كه آيا براي شما از نوع smart هست و يا يقين داريد كه اين ويژگي غيرفعال است بهتر است به هاستينگ خود تيكت ارسال نماييد.
با آموزش هاي بالا سعي برآن داشتيم تا يكي از مهمترين فاكتورهاي اساسي در افزايش سرعت سايت كه آموزش نحوه رفع ارور Enable Keep Alive ميباشد را توضيح دهيم.
اين جلسه از آموزش رفع خطاهاي gtmetrix هم به پايان رسيد