Крок перший. Оновлення Apache
Протокол HTTP/2 підтримується сервером Apache з версії 2.4.24, тому, якщо у Вас встановлена стара версія, - саме час її оновити. Але спочатку перевіримо:
apache -v
Ця команда видасть щось на кшталт такого:
Server version: Apache/2.4.37 (Ubuntu)
Server built: 2018-10-28T15:27:08
У першому рядку вказана версія сервера. Якщо вона більша або дорівнює 2.4.24, можемо сміливо переходити до другого кроку. Інакше потрібно оновити апач, актуальні версії якого Ви зможете знайти в PPA відомого (якщо Вам вже доводилося ставити щось свіженьке на Debian/Ubuntu) розробника - Ondřej Surý. PPA – це персональні пакети, які не включені в офіційні репозиторії дистрибутивів. Тому, щоб скористатися ними, спочатку треба навчити систему, що й звідки брати:
sudo add-apt-repository ppa:ondrej/apache2
Хлопець робить гарну справу, і не проти отримати невеликий донат, про що дуже недвозначно заявляє при підключенні до його ріп…
Далі, власне, оновлюємо пакети:
sudo apt update
sudo apt upgrade
І знову перевіряємо версію Apache. Якщо все пройшло добре, на Вашому сервері буде стояти Apache, на якому можна налаштувати HTTP/2. Якщо все пішло погано – боюся, це вже не тема цієї статті. А тепер переходимо до другого кроку.
Крок другий. Використання FastCGI
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-enabled
Далі перезапускаємо Apache
sudo service apache2 restart
та переходимо до третього кроку.
Крок третій. Перехід із модуля Prefork на Event
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
service apache2 restart
Крок четвертий. Включаємо HTTP/2
Або в конфігураційний файл хоста, знайти який можна в директорії /etc/apache2/sites-enabled/ , або в конфізі самого сервера /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
Перший спосіб: звернутися до інструментів веб-розробника, які надаються самим браузером. Розглянемо на прикладі браузера Chrome :
-
Відкрийте у браузері будь-яку сторінку сайту.
-
Активуйте панель інструментів розробника.
За замовчуванням:Ctrl+Shift+I. -
Активуйте вкладку Network .
-
Оновіть сторінку.
За замовчуванням:Ctrl+F5.
Якщо файл кешується, то в колонці Size замість розміру файлу буде відображатися запис (from memory cache) або (from disk cache) :

