HTTP/2 на CentOS 7 на Apache с PHP7

После некоторых исследований я не могу найти ответ на вопрос: Как обновить Apache/httpd до последней версии, чтобы использовать протокол HTTP/2 на моем VPS. Я использую PHP7 и мой сервер на основе Apache - CentOS 7.

Нет обновлений пакетов на репозитории CentOS по умолчанию.

[root@vps270238 ~]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Nov 19 2015 21:43:13

Я действительно хочу сохранить свои текущие настройки и виртуальные хосты.

2 ответа

Вам нужен Apache 2.4.18 или выше, чтобы включить HTTP/2, хотя некоторые рекомендуют минимум Apache 2.4.23 с большим количеством изменений в mod_http2 с тех пор (обсуждается ниже). Это также требует некоторого стороннего программного обеспечения (nghttp2 и последняя версия openssl)

Репозитории по умолчанию от Centos основаны на Red Hat, которая отдает приоритет стабильности, а не последним функциям. Поэтому они часто отстают в версиях (хотя и постоянно обновляются с помощью исправлений безопасности - даже если для этого они оставляют номер версии одинаковым).

Кроме того, модуль mod_http2 по-прежнему сильно меняется ( почти ежедневно, если вы посмотрите на его релизы!), Поэтому он все еще довольно передовой - хотя у меня не было проблем со стабильностью в течение нескольких месяцев, когда я запускал его.

По этой причине я лично считаю, что лучший способ использовать http/2 в Apache - это скомпилировать последнюю версию из исходного кода. Это не без рисков, конечно. Для начала вы теряете защиту от простых обновлений безопасности, упомянутых выше, поэтому, возможно, придется обновляться чаще, чтобы оставаться в курсе этих проблем (на мой взгляд, ничего плохого). Кроме того, вы должны проверить исходный код перед его установкой (особенно для такого приложения, как Apache, которое запускается, по крайней мере, изначально, от имени пользователя root). Так что это не решение, которое нужно воспринимать легкомысленно.

Сказав это, если вы хотите продолжить, установка из исходного кода не так сложно, как кажется. У меня есть запись в блоге о том, как это сделать, а также использовать Centos. Я не использую PHP, поэтому не уверен, что вам понадобятся дополнительные параметры компиляции для этого.

Также обратите внимание, что по умолчанию Apache будет установлен в / usr / local / apache2. Это хорошо, поскольку позволяет сохранить исходную установку (в случае необходимости откатить), но означает, что вам нужно скопировать любую конфигурацию в / usr / local / apache2 / conf, остановить старый Apache (в том числе в любых сценариях запуска) и перезапустите новый Apache с нового места.

Быстрая подсказка. Используйте nginx в качестве обратного прокси-сервера и включите с него httpd/2. И вы сохраните все свои vhosts и htaccess.

Другие вопросы по тегам