تكوين HTTP / 2 باستخدام Apache 2.4 و PHP 7 و Ubuntu 18.04 LTS كمثال

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

ما هو HTTP / 2؟ كما يوحي الاسم ، هذا هو الإصدار الثاني من بروتوكول HTTP. يمكنك قراءة المزيد عن الفوائد على الأقل في ويكيبيديا . نيابة عني ، سأقول فقط أنه إذا كنت لا تستضيف استضافة مشتركة ، فإن دعم هذا البروتوكول أمر لا بد منه ، وكذلك ، على سبيل المثال ، HTTPS. نعم ، لكي يعمل HTTP / 2 ، ستحتاج إلى الوصول الكامل إلى وحدة تحكم الجهاز (وإن كانت افتراضية) من خلال ssh أو بطريقة أخرى ، بالإضافة إلى HTTPS الذي تم تكوينه بالفعل (TLS / SSL). حسنا ، دعنا نبدأ العمل.

الخطوة الأولى. تحديث اباتشي


يدعم بروتوكول Apache بروتوكول HTTP / 2 من الإصدار 2.4.24 ، لذلك إذا كان لديك إصدار قديم مثبت ، فقد حان الوقت لتحديثه. ولكن أولاً ، تحقق:

apache -v 

سينتج عن هذا الأمر شيء مثل هذا:

 Server version: Apache/2.4.37 (Ubuntu) Server built: 2018-10-28T15:27:08 

يعرض السطر الأول إصدار الخادم. إذا كانت أكبر من أو تساوي 2.4.24 ، يمكننا المتابعة بأمان إلى الخطوة الثانية. خلاف ذلك ، تحتاج إلى تحديث Apache ، الإصدار الحالي الذي يمكنك العثور عليه في PPA للمطور الشهير (إذا كان عليك بالفعل وضع شيء جديد على Debian / Ubuntu) - Ondřej Surý. تعد اتفاقيات الشراء العامة حزمًا شخصية غير مدرجة في مستودعات التوزيع الرسمية. لذلك ، لاستخدامها ، تحتاج أولاً إلى تعليم النظام ماذا وأين يمكن الحصول عليه:

 sudo add-apt-repository ppa:ondrej/apache2 

يقوم الرجل بعمل جيد ، ولا تمانع في الحصول على كعكة صغيرة ، والتي يتم ذكرها بوضوح شديد عند الاتصال بلفت اللفت ...

علاوة على ذلك ، في الواقع ، نقوم بتحديث الحزم:

 sudo apt update sudo apt upgrade 

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

الخطوة الثانية باستخدام FastCGI


ما هو FastCGI - من الأفضل أن تقرأ ، كما قلت ، على الأقل في ويكيبيديا ، لأنه لا يمكنك إخبارنا باختصار. تحتاج إلى التبديل إلى PHP قيد التشغيل في وضع FastCGI (php-fpm). كيف يعمل - يتم إعطاء إجابة جيدة على محمصة . هنا لن أخوض في هذه الفروق الدقيقة ، لكنني سأنتقل فورًا إلى التثبيت:

 sudo apt install php-fpm 

بعد التثبيت ، سيتم إخبارنا حرفيا بما يلي: لتمكين PHP 7.2 FPM في Apache2 ، قم بما يلي:

 sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.2-fpm 

نحن نفعل ذلك. بعد ذلك تحتاج إلى تعطيل mod_php ، لأنه بدلاً من ذلك لديك الآن php-fpm.

 sudo a2dismod php7.2 

بشكل عام ، ربما كان لديك إصدار مختلف من PHP قبل ذلك. يمكنك إلقاء نظرة على الوحدات التي قمت بتثبيتها في النظام في الدليل / etc / apache2 / mods-available / والتي تكون نشطة في / etc / apache2 / mods-تمكين

بعد ذلك ، أعد تشغيل Apache

 sudo service apache2 restart 

وانتقل إلى الخطوة الثالثة.

الخطوة الثالثة التحول من Prefork إلى الحدث


ما هو MPM وما الفرق بين prefork ، والحدث ، والعامل - يمكنك القراءة هنا في هذه المقالة الرائعة ... ولكن من المهم الآن معرفة شيء واحد فقط: بريورك "القياسي" غير متوافق تمامًا مع HTTP / 2 ، لذلك تحتاج إلى استخدام أكثر ملاءمة . قم بإيقاف تشغيل أحدهما ، ثم تشغيل الآخر ، وإعادة تشغيل Apache.

 sudo a2dismod mpm_prefork sudo a2enmod mpm_event service apache2 restart 

الخطوة الرابعة. تمكين HTTP / 2


إما في ملف تكوين المضيف ، والذي يمكن العثور عليه في الدليل / etc / apache2 / المواقع الممكّنة / ، أو في تكوين الخادم /etc/apache2/apache2.conf نفسه ، نقول أننا بحاجة إلى دعم للبروتوكول الجديد:
Protocols h2 h2c http/1.1

ما يهم حقا هو H2 . هناك نقطتان أخريان حسب تقديرك. h2c هو دعم HTTP / 2 عبر TCP (وليس TLS). http / 1.1 - دعم الإصدار القديم من HTTP.

شغّل وحدة http2 وأعد تشغيل الخادم:

 sudo a2enmod http2 service apache2 restart 

وصل


من الآن فصاعدا. يجب أن يبدأ موردك في العمل عبر HTTP / 2. إذا كنت تستخدم Chrome بالانتقال إلى المورد ، فسترى كيف يضيء صاعقة البرق في الزاوية اليمنى العلوية من المتصفح باللون الأزرق. عند المرور فوقها ، سترى موجه HTTP / 2 (h2) الممكّن. في فايرفوكس ، انتقل إلى لوحة المطور وعلى علامة التبويب الشبكة ، قم بتشغيل عمود البروتوكول - بالنسبة للموارد من موقعك ، يجب إدراج HTTP / 2.0. يمكنك أيضًا التحقق مما إذا كان المورد الخاص بك يدعم هذا البروتوكول في أحد المواقع العديدة على الويب. ولكن لا تسترخي ، لأن HTTP / 3 على أعتابها بالفعل :)

Source: https://habr.com/ru/post/ar430188/


All Articles