Назад | Перейти на главную страницу

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

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

Чтобы включить HTTP / 2, вам потребуется Apache 2.4.18 или выше, хотя некоторые рекомендуют как минимум 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.