Протокол передачи гипертекста версии 2 (HTTP/2) значительно улучшен по сравнению со своим предшественником HTTP/1.1. Благодаря таким функциям, как мультиплексирование, сжатие заголовков и серверный толчок, HTTP/2 обеспечивает более быструю загрузку веб-страниц и улучшает общее впечатление пользователей.
HTTP/2 никак не изменяет прикладную семантику HTTP. Вместо этого он изменяет структуру данных и их передачу между сервером и клиентом, делая обмен более эффективным. Многие современные браузеры поддерживают HTTP/2, поэтому его включение на вашем сервере может привести к повышению производительности для ваших посетителей.
Чтобы включить HTTP/2 в веб-сервере Apache, вам понадобится модуль mod_http2. Он поставляется с Apache версии 2.4.17 и выше. Если вы используете более старую версию, вам может потребоваться обновить ваш экземпляр Apache.
Шаги по настройке HTTP/2 для Apache
Запустите терминал.
Убедитесь, что у вас установлен Apache версии 2.4.17 или новее.
1 | apachectl -v |
Эта команда выводит версию вашего сервера Apache. Убедитесь, что это 2.4.17 или более новая версия.
Используйте httpd -v, если вы используете CentOS или другие варианты Red hat.
Включите модуль http2 для Apache.
1 | sudo a2enmod http2 |
- В дистрибутивах с поддержкой a2enmod можно просто выполнить приведенную выше команду без необходимости вручную включать необходимые модули.
- Fedora, CentOS и Red Hat включают модуль по умолчанию, поэтому не требуют никаких действий вручную для включения модулей.
Откройте файл конфигурации вашего сайта Apache с помощью удобного текстового редактора.
1 | sudo nano /etc/apache2/sites-available/000-mysite.conf |
Добавьте соответствующую директиву Protocols в основной файл конфигурации Apache или в конфигурацию конкретного виртуального сервера.
1 2 3 4 | <VirtualHost *:80> # ..... Protocols h2 h2c http/1.1 </VirtualHost> |
Перезапустите Apache, чтобы применить изменения.
1 | sudo systemctl restart apache2 |
или
1 | sudo systemctl restart httpd |
Убедитесь, что HTTP/2 включен, проверив заголовок ответа вашего HTTP-запроса.
1 | curl --http2 --head example.com |