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

Почему http2 не работает на моем Apache / 2.4.29?

Я пытался включить http2 модуль на Apache/2.4.29 на котором я бегу Ubuntu 16.04, но вроде не работает.

Мне понравилось вот что:

sudo a2enmod http2

А затем активировать индивидуально, добавив:

Protocols h2 http/1.1

Я тоже бегу mpm_prefork модуль, это могло вызвать проблемы для http2 и если да, то какую альтернативу запустить вместо этого mpm_prefork?

Еще я использую общий сервер, который позволяет запускать только PHP. Я проверял suPHP, но на их веб-сайте написано:

suPHP больше не поддерживается и не будет получать никаких обновлений, даже исправлений безопасности.

Вот это быстрое решение, которое может вам помочь.

Также есть хорошие данные о mpm_prefork и обходные пути в разделе устранения неполадок Вот

Начиная с Apache 2.4.27, предварительный форк Apache MPM (Multi-Processing Module) больше не поддерживает HTTP / 2. Это будет указано в журнале ошибок Apache следующим образом: AH10034: Модуль mpm (prefork.c) не поддерживается mod_http2. MPM определяет, как вещи обрабатываются на вашем сервере. HTTP / 2 предъявляет больше требований в этом отношении, и текущий выбранный mpm просто не подходит. Это рекомендательное предупреждение. Ваш сервер продолжит работать, но протокол HTTP / 2 будет неактивен.

Я решил, что в моем случае с PHP, Python, Django с Apache2 с прямым использованием / прокси-сервером я не могу использовать http2. затем выясните проблему и решите, как показано ниже

apachectl stop
apt-get install php7.0-fpm # Install the php-fpm from your PHP repository. This package name depends on the vendor.
a2enmod proxy_fcgi setenvif
a2enconf php7.0-fpm # Again, this depends on your PHP vendor.
a2dismod php7.0 # This disables mod_php.
a2dismod mpm_prefork # This disables the prefork MPM. Only one MPM can run at a time.
a2enmod mpm_event # Enable event MPM. You could also enable mpm_worker.
apachectl start

В соответствии с вашими местными потребностями вам нужна правильная версия php для setus, в моем случае это php7.0. Если у вас нет PHP, просто избегайте действий, связанных с php.

Примечание: mpm_prefork плохо работает с http2 и производительностью. мое личное предложение, используйте mpm_event или worker

Когда я настроил вышеуказанные шаги, я сразу получил протокол H2. Ваше предложение приветствуется в комментариях