מאז תחילת ה־רשת העולמית (www), פרוטוקול ה־HTTP התפתח לאורך השנים כדי למסור תוכן דיגיטלי מאובטח ומהיר יותר דרך האינטרנט.
הגרסה הנפוצה ביותר היא HTTP 1.1 ועל אף שהיא משופרת ומבוצעת עם אופטימיזציות לשיפור תכונות וביצועים לטיפול בחסרונות של גרסאות קודמות, היא עדיין חסרת כמה מתכונות נבחרות שטופלו על ידי ה־HTTP/2.
מהם המגבלות של HTTP/1.1?
פרוטוקול ה־HTTP/1.1 סובל מהחסרונות הבאים שהופכים אותו לפחות אידיאלי במיוחד בעת הפעלת שרתי רשת רבי־תעבורה:
- עיכובים בטעינת דפי האינטרנט עקב כותרות HTTP ארוכות.
- HTTP/1.1 מסוגל רק לשלוח בקשה אחת לכל קובץ לכל חיבור TCP.
- בהתחשב בכך ש־HTTP/1.1 מעבד פנייה אחת לכל חיבור TCP, דפדפנים נאלצים לשלוח מספר רב של חיבורי TCP פרלליים כדי לעבד את הבקשות באופן סימולטני. זה מביא לעומס בתעבורת ה־TCP ובסופו של דבר לבזבוז רוחב פס ולדegrשת רשת.
הבעיות הנ"ל תמיד הובילו לדחיית בביצועים ולעלויות ראש בשימוש ברוחב פס גבוהות. HTTP/2 הגיעה לתמוך בבעיות אלו וכעת היא העתיד של פרוטוקולי HTTP.
יתרונות בשימוש ב־HTTP/2
היא מציעה את היתרונות הבאים:
- דחיסת כותרות הממזערת בקשות מלקוח ובכך מורידה את צריכת הרוחב פס. התוצאה היא מהירות טעינת דף מהירה.
- העברת מספר בקשות על חיבור TCP אחד. השרת והלקוח יכולים לפרק בקשת HTTP למספר מסגרות ולאגד אותם בקצה השני.
- ביצועים טובים יותר באינטרנט שמביאים לדרגת SEO טובה יותר.
- אבטחה משופרת מאחר ורוב הדפדפנים המובילים טוענים את HTTP/2 על HTTPS.
- HTTP/2 נחשבת יותר ידידותית לנייד תודות לתכונת דחיסת הכותרת.
אמנם, אנו הולכים לאפשר HTTP/2 על אפאצ'י על אובונטו 20.04 LTS ועל אובונטו 18.04 LTS.
תנאים מוקדמים:
לפני שתתחילו, וודאו שאתם מפעילים HTTPS על שרת האפאצ'י לפני שאתם מאפשרים HTTP/2. זה כי כל דפדפני האינטרנט המובילים תומכים ב- HTTP/2 מעל HTTPS. יש לי שם דומיין המכוון להופעה על אובונטו 20.04 הפועלת שרת אפאצ'י מאובטח באמצעות תעודת Let’s Encrypt.
כמו כן, מומלץ לכם להשתמש ב- אפאצ'י 2.4.26 וגרסאות מאוחרות יותר עבור שרתי ייצור המתכוונים לעבור ל- HTTP/2.
כדי לבדוק את גרסת אפאצ'י שאתם מפעילים, הריצו את הפקודה:
$ apache2 -v

מהפלט, ניתן לראות כי אנו משתמשים בגרסה העדכנית ביותר, שהיא Apache 2.4.41 בזמן כתיבת המאמר הזה.
הפעלת HTTP/2 על Virtual Host של Apache
כדי להתחיל, ראשית יש לוודא שהשרת פועל ב-HTTP/1.1. ניתן לעשות זאת בדפדפן על ידי פתיחת כלי הפיתוח ב-גוגל כרום באמצעות השילוב Ctrl +SHIFT + I
. לחץ על הכרטיסייה 'Network' ואתר את עמודת 'Protocol'.

בשלב הבא, יש להפעיל את מודול HTTP/2 ב-Ubuntu על ידי ביצוע הפקודה הבאה.
$ sudo a2enmod http2

לאחר מכן, יש לאתר ולערוך את קובץ Virtual Host של SSL, אם הפעלת HTTPS באמצעות Let’s Encrypt, קובץ חדש נוצר עם סיומת le-ssl.conf.
$ sudo vim /etc/apache2/sites-enabled/your-domain-name-le-ssl.conf
הוסף את ההוראה הבאה לאחר התג <VirtualHost *:443>
.
Protocols h2 http/1.1

לשמירה על השינויים, יש לאתחל מחדש את שרת ה- Apache.
$ sudo systemctl restart apache2
כדי לבדוק האם HTTP/2 מופעל, יש לקבל את כותרות ה- HTTP באמצעות הפקודה הבאה של curl כפי שמוצג.
$ curl -I --http2 -s https://domain.com/ | grep HTTP

עליך לקבל את הפלט שמוצג.
HTTP/2 200
בדפדפן, עדכן את האתר שלך. לאחר מכן שוב לכלי הפיתוח ווודא ש- HTTP/2 מסומן על ידי התו h2
בעמודת 'Protocol'.

כאשר משתמשים במודול mod_php עם Apache
אם אתה מריץ את Apache לצד המודול mod_php, עליך לעבור לשימוש ב־PHP-FPM. זה מכיוון שהמודול mod_php משתמש במודול ה־prefork MPM שאינו נתמך על ידי HTTP/2. עליך להסיר את מודול ה־prefork MPM ולעבור לשימוש במודול mpm_event שיתמך על ידי HTTP/2.
אם אתה משתמש במודול PHP 7.4 mod_php, לדוגמה, עליך להשבית אותו כפי שמוצג:
$ sudo a2dismod php7.4

לאחר מכן, להשבית את מודול ה־prefork MPM.
$ sudo a2dismod mpm_prefork

לאחר השבתת המודולים, לאחר מכן, להפעיל את מודולי Event MPM, Fast_CGI, ו־setenvif כפי שמוצג.
$ sudo a2enmod mpm_event proxy_fcgi setenvif

התקנת PHP-FPM על Ubuntu
לאחר מכן, להתקין ולהתחיל את PHP-FPM כפי שמוצג.
$ sudo apt install php7.4-fpm $ sudo systemctl start php7.4-fpm
לאחר מכן, לאפשר ל־PHP-FPM להתחיל בזמן האתחול.
$ sudo systemctl enable 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 restart apache2
לבסוף, ניתן לבדוק האם השרת שלך משתמש בפרוטוקול HTTP/2 באמצעות פקודת curl כפי שמוצג.
$ curl -I --http2 -s https://domain.com/ | grep HTTP

אתה יכול גם להשתמש בכלי הפיתוח בדפדפן Google Chrome כדי לוודא כפי שתועד לפני. יש לנו עד סוף מדריך זה, מקווים שמצאת את המידע שימושי ושתוכל להפעיל HTTP/2 על Apache בקלות.
Source:
https://www.tecmint.com/enable-http2-in-apache-on-ubuntu/