كيفية تمكين HTTP / 2 في Apache على Ubuntu

instagram story viewer

منذ إنشاء شبكة الانترنت (www)، ال HTTP لقد تطور البروتوكول على مر السنين لتقديم محتوى رقمي آمن وسريع عبر الإنترنت.

الإصدار الأكثر استخدامًا هو HTTP 1.1 وأثناء حزمه مع تحسينات الميزات وتحسينات الأداء لمعالجة أوجه القصور في الإصدارات السابقة ، فإنه لا يرقى إلى عدد قليل من الميزات البارزة الأخرى التي كانت يعالجها HTTP / 2.

ما هي حدود HTTP / 1.1؟

ال HTTP / 1.1 البروتوكول محفوف بأوجه القصور التالية التي تجعله أقل مثالية خاصة عند تشغيل خوادم الويب عالية الحركة:

  1. التأخير في تحميل صفحات الويب بسبب رؤوس HTTP الطويلة.
  2. HTTP / 1.1 قادر فقط على إرسال طلب واحد لكل ملف لكل اتصال TCP.
  3. نظرًا لأن HTTP / 1.1 يعالج طلبًا واحدًا لكل اتصال TCP ، تضطر المستعرضات إلى إرسال طوفان من اتصالات TCP المتوازية لمعالجة الطلبات في وقت واحد. وهذا يؤدي إلى ازدحام بروتوكول التحكم في الإرسال (TCP) وإهدار عرض النطاق الترددي في نهاية المطاف وتدهور الشبكة.

غالبًا ما أدت المشكلات المذكورة أعلاه إلى تدهور الأداء وارتفاع التكاليف العامة في استخدام النطاق الترددي. HTTP / 2 جاء إلى الصورة لمعالجة هذه المشاكل وهو الآن المستقبل لبروتوكولات HTTP.

مزايا استخدام HTTP / 2

يقدم المزايا التالية:

  1. ضغط الرأس الذي يقلل من طلبات العميل وبالتالي يقلل من استهلاك النطاق الترددي. التأثير الناتج هو سرعات تحميل الصفحة السريعة.
  2. مضاعفة عدة طلبات عبر اتصال TCP واحد. يمكن لكل من الخادم والعميل تقسيم طلب HTTP إلى إطارات متعددة وإعادة تجميعها في الطرف الآخر.
  3. أداء ويب أسرع مما يؤدي بالتالي إلى ترتيب أفضل لكبار المسئولين الاقتصاديين.
  4. أمان محسّن لأن معظم المتصفحات السائدة تقوم بتحميل HTTP / 2 عبر HTTPS.
  5. يعتبر HTTP / 2 أكثر ملاءمة للجوّال بفضل ميزة ضغط الرأس.

ومع ذلك ، سنقوم بالتمكين HTTP / 2 على اباتشي على نظام التشغيل Ubuntu 20.04 LTS و نظام التشغيل Ubuntu 18.04 LTS.

المتطلبات الأساسية:

قبل البدء ، تأكد من تمكين HTTPS على خادم الويب Apache قبل التمكين HTTP / 2. هذا لأن جميع متصفحات الويب السائدة تدعم HTTP / 2 خلال HTTPS. لدي اسم مجال يشير إلى مثيل في نظام التشغيل Ubuntu 20.04.2018 الذي تشغيل خادم Apache تأمين باستخدام لنقم بتشفير الشهادة.

أيضا ، من المستحسن أن يكون لديك اباتشي 2.4.26 والإصدارات الأحدث لخوادم الإنتاج التي تعتزم إجراء تحول إلى HTTP / 2.

للتحقق من إصدار اباتشي أنت تعمل ، نفّذ الأمر:

اباتشي $ 2 -v. 
تحقق من إصدار Apache في Ubuntu
تحقق من إصدار Apache في Ubuntu

من الإخراج ، يمكنك أن ترى أننا نستخدم أحدث إصدار ، وهو اباتشي 2.4.41 في وقت كتابة هذا المقال.

قم بتمكين HTTP / 2 على مضيف Apache الظاهري

للبدء ، تأكد أولاً من تشغيل خادم الويب HTTP / 1.1. يمكنك القيام بذلك على المتصفح عن طريق فتح قسم أدوات المطور على جوجل كروم باستخدام Ctrl + SHIFT + I مزيج. اضغط على 'شبكة"وحدد موقع"بروتوكول' عمودي.

قم بتأكيد إصدار بروتوكول HTTP
قم بتأكيد إصدار بروتوكول HTTP

بعد ذلك ، قم بتمكين HTTP / 2 وحدة على أوبونتو عن طريق تشغيل الأمر التالي.

sudo a2enmod http2. 
قم بتمكين HTTP / 2 على Ubuntu
قم بتمكين HTTP / 2 على Ubuntu

بعد ذلك ، حدد موقع وتعديل ملف SSL ملف المضيف الظاهري ، إذا كنت قد قمت بتمكين HTTPS باستخدام لنقم بتشفير، يتم إنشاء ملف جديد بامتداد le-ssl.conf لاحقة.

$ sudo vim /etc/apache2/sites-enabled/your-domain-name-le-ssl.conf. 

أدخل التوجيه أدناه بعد بطاقة شعار.

بروتوكولات h2 http / 1.1. 
تفعيل HTTP / 2 على Apache
تفعيل HTTP / 2 على Apache

لحفظ التغييرات ، أعد تشغيل خادم الويب Apache.

أعد تشغيل sudo systemctl $ 2. 

للتحقق مما إذا كان HTTP / 2 ، قم بإحضار رؤوس HTTP باستخدام ما يلي الأمر حليقة كما تظهر.

$ curl -I --http2 -s https://domain.com/ | grep HTTP. 
تحقق من دعم HTTP / 2 في Apache
تحقق من دعم HTTP / 2 في Apache

يجب أن تحصل على الإخراج معروض.

HTTP / 2200. 

على المتصفح ، أعد تحميل موقعك. ثم عد إلى أدوات المطور وقم بتأكيد HTTP / 2 الذي يشير إليه h2 التسمية علىبروتوكول' عمودي.

قم بتأكيد إصدار بروتوكول HTTP / 2
قم بتأكيد إصدار بروتوكول HTTP / 2

عند استخدام وحدة mod_php مع Apache

إذا كنت تعمل اباتشي بجانب mod_php الوحدة النمطية ، تحتاج إلى التبديل إلى PHP-FPM. هذا لأن ملف mod_php تستخدم الوحدة النمطية بريفورك MPM الوحدة التي لا يدعمها HTTP / 2. تحتاج إلى إلغاء تثبيت Prefork MPM والتبديل إلى الحدث في الدقيقة الوحدة التي سيتم دعمها بواسطة HTTP / 2.

إذا كنت تستخدم ملف PHP 7.4 mod_php الوحدة النمطية ، على سبيل المثال ، قم بتعطيلها كما هو موضح:

sudo a2dismod php7.4 
تعطيل وحدة mod_php
تعطيل وحدة mod_php

بعد ذلك ، قم بتعطيل Prefork MPM وحدة.

sudo a2dismod mpm_prefork. 
تعطيل Prefork MPM في Apache
تعطيل Prefork MPM في Apache

بعد تعطيل الوحدات ، بعد ذلك ، قم بتمكين حدث MPM, Fast_CGI، و سيتينفيف وحدات كما هو موضح.

sudo a2enmod mpm_event proxy_fcgi setenvif. 
تفعيل Event MPM في Apache
تفعيل Event MPM في Apache

قم بتثبيت PHP-FPM على Ubuntu

بعد ذلك ، قم بالتثبيت والبدء PHP-FPM كما هو مبين.

sudo apt install php7.4-fpm $ sudo systemctl start php7.4-fpm. 

ثم قم بتمكين PHP-FPM للبدء في وقت التمهيد.

sudo systemctl $ يُمكّن php7.4-fpm. 

بعد ذلك ، قم بتمكين PHP-FPM كمعالج PHP الخاص بـ Apache وأعد تشغيل خادم الويب Apache حتى يتم تنفيذ التغييرات.

sudo a2enconf $ php7.4-fpm. 

تفعيل دعم HTTP / 2 في Apache Ubuntu

ثم قم بتمكين وحدة HTTP / 2 كما كان من قبل.

sudo a2enmod http2. 

أعد تشغيل Apache لمزامنة جميع التغييرات.

أعد تشغيل sudo systemctl $ 2. 

أخيرًا ، يمكنك اختبار ما إذا كان خادمك يستخدم ملف HTTP / 2 بروتوكول باستخدام الأمر حليقة كما هو مبين.

$ curl -I --http2 -s https://domain.com/ | grep HTTP. 
تحقق من بروتوكول HTTP / 2 في Apache
تحقق من بروتوكول HTTP / 2 في Apache

يمكنك أيضًا اختيار استخدام أدوات المطور في ملف جوجل كروم المتصفح للتحقق من أنه موثق سابقًا. يتعين علينا حتى نهاية هذا الدليل ، ونأمل أن تكون قد وجدت المعلومات ذات قيمة والتي يمكنك تمكينها بشكل مريح HTTP / 2 على اباتشي بسهولة.

Teachs.ru