Тематические термины: Apache , CentOS , HTTP/2
За поддержку данной функциональной возможности в Apache отвечает модуль http2_module. Для этого версия программного обеспечения веб-сервера должна быть 2.4.17 и выше. Также необходима библиотека TLS с поддержкой расширения ALPN (OpenSSL 1.0.2 и выше). В инструкции приведены примеры работы на операционной системе Linux CentOS, однако, принцип настройки apache http/2 схож и для других систем, например, Ubuntu, Debian. Рассмотренные варианты помогут как установить веб-сервер с нуля, так и перейти на 2-ю версию протокола на имеющемся сервере.
Обновляем или установливаем Apache
Генерируем сертификат
Настраиваем Apache
Тестируем настройку
Используем настройку для виртуального домена
Смотрите также
Если httpd еще не установлен, выполняем команду:
yum install httpd
Проверяем версию веб-сервера apache следующей командой:
httpd -v
Если она ниже 2.4.17, обновляем пакет.
На момент написания статьи, в стандартном репозитории CentOS не было подходящей версии Apache. Для начала, ставим epel:
yum install epel-release
Добавляем репозиторий от CodeIT:
cd /etc/yum.repos.d
wget https://repo.codeit.guru/codeit.el`rpm -q —qf «%{VERSION}» $(rpm -q —whatprovides redhat-release)`.repo
* если система выдаст ошибку, ставим wget командой yum install wget .
Обновляем httpd:
yum update httpd
Как правило, необходимый модуль устанавливается с обновлением. Но если этого не произошло, его можно установить следующей командой:
yum install mod_http2
* в Ubuntu установка модуля происходит командой a2enmod http2 .
С версии Apache 2.4.27 Multi-Processing Module (MPM) prefork не поддерживает http/2 и можно увидеть предупреждение the mpm module (prefork.c) is not supported by mod_http2 . Необходимо перейти на использование другого MPM — event или worker.
В качестве примера, будем использовать самоподписный сертификат. Создаем каталог для хранения ключей:
mkdir /etc/httpd/ssl
Генерируем сертификаты:
openssl req -new -x509 -days 1461 -nodes -out /etc/httpd/ssl/cert.pem -keyout /etc/httpd/ssl/cert.key -subj «/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=test.remontka.local/CN=test»
В боевой среде желательно использовать корректный сертификат. Для этого его можно купить или сгенерировать в Let’s Encrypt бесплатно.
Устанавливаем модуль поддержки ssl:
yum install mod_ssl
Открываем на редактирование следующий файл:
vi /etc/httpd/conf.d/ssl.conf
Редактируем следующие строки:
SSLCertificateFile /etc/httpd/ssl/cert.pem
…
SSLCertificateKeyFile /etc/httpd/ssl/cert.key
Проверяем настройки apache и перезапускаем его:
apachectl configtest
apachectl graceful
На этом основная настройка завершена. Чтобы проверить работу http/2, открываем браузер с установленным плагином «HTTP/2 and SPDY indicator» или пользуемся онлайн тестом — geekflare.com/tools/http2-test . Переходим по адресу https://<IP-адрес сервера>
Если мы генерировали самоподписный сертификат, браузер может выдать ошибку безопасности, игнорируем ее, продолжая загрузку сайта.
Если необходима настройка нескольких доменов, настройка http/2 для конкретного из них выполняется следующим образом:
vi /etc/httpd/conf.d/virtual_domain.conf
<VirtualHost *:443>
ServerName site.ru
DocumentRoot /usr/share/httpd/noindex
Protocols h2 http/1.1
SSLEngine on
SSLCertificateFile ssl/cert.pem
SSLCertificateKeyFile ssl/cert.key
</VirtualHost>
* ServerName — домен сайта; DocumentRoot — расположение файлов сайта в системе; Protocols — версия протокола, в данном случае, http2 и http 1.1; SSLCertificateFile и SSLCertificateKeyFile — пути до файлов ключей, которые были сгенерированы нами ранее.
* напротив, чтобы запретить http/2 и принудительно использовать его первую версию, необходимо указать Protocols h1 http/1.1 .
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…