如何在 Debian Stretch 版本 2.4.33 上启用 Apache2 HTTP/2?

如何在 Debian Stretch 版本 2.4.33 上启用 Apache2 HTTP/2?

今天,我每周都会对我的 Debian Web 服务器进行一次升级。

我收到了一条消息:

apache2 (2.4.25-3+deb9u5) stretch; urgency=medium
 * This package upgrades mod_http2 to the version from apache2 2.4.33. This
   fixes a lot of bugs and some security issues, but it also removes the
   support for using HTTP/2 when running with mpm_prefork. HTTP/2 support
   is only provided when running with mpm_event or mpm_worker.
-- Stefan Fritsch <[email protected]>  Sat, 02 Jun 2018 09:51:46 +0200

这让我很惊讶,因为我在我的服务器上使用 HTTP/2。我测试了我的服务器SSL实验室,HTTP/2 确实消失了。

假设我使用官方的 Apache 和 PHP 7.0 包,我该如何解决这个问题?

答案1

就我而言,我应用了以下命令来root使其再次运行:

# enable these mods
a2enmod proxy_fcgi setenvif

# disable standard PHP module
a2dismod php7.3

# if you don't have FPM already installed
apt-get install php7.3-fpm

# query the MPM
a2query -M

如果您看到preforkworker,则需要继续执行以下步骤。如果您看到event,则可以跳过接下来的 2 个步骤。

# disable the prefork / worker MPM (only one MPM can run at a time)
a2dismod mpm_prefork mpm_worker

# enable event MPM
a2enmod mpm_event

# start and enable the FastCGI Process Manager
systemctl start php7.3-fpm && systemctl enable php7.3-fpm

# enable the FastCGI Process Manager configuration
a2enconf php7.3-fpm

# start Apache2 web server
systemctl restart apache2

经测试可在 GNU/Linux Debian 10 Buster 上运行2019年4月11日


现在,您终于可以通过 ALPN 启用 HTTP/2。

您可以对此文件中的所有站点全局执行此操作:

/etc/apache2/apache2.conf

使用以下指令:

Protocols h2 http/1.1

相关内容