Apache2启用HTTP/2

HTTP/2 可以让我们的应用更快、更简单、更稳定 – 这几词凑到一块是很罕见的!HTTP/2 将很多以前我们在应用中针对 HTTP/1.1 想出来的“歪招儿”一笔勾销,把解决那些问题的方案内置在了传输层中。不仅如此,它还为我们进一步优化应用和提升性能提供了全新的机会!

——《Web 性能权威指南》

Ubuntu18.04 官方源已经包含带有HTTP2模块的 Apache/2.4.29 ,所以我们可以很简单的启用 HTTP2。

sudo a2enmod http2

首先启用 http2 模块,然后在虚拟主机的配置文件中或者在Apache2的全局配置文件中加入:

Protocols h2 http/1.1

当客户端支持时优先使用 HTTP2 ,其次是 http/1.1,表明了一种优先顺序。目前为止就已经启用完成了,但如果你是使用的 Apache2+PHP 架构的应用程序,由于 mpm_prefork 模块不支持 mod_http2,所以我们需要切换 mpm_prefork、mod_php 到 mpm_event 和 php-fpm 来解决这个问题。

# Install php-fpm and enable
sudo apt install php-fpm
sudo systemctl enable php7.2-fpm
# To enable PHP 7.2 FPM in Apache2
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.2-fpm
# First to disable PHP 7.2/ mpm_prefork to avoid conflicts,then enable.
sudo a2dismod php7.2 mpm_prefork
sudo a2enmod mpm_event

最后使用 Firefox 的开发者工具测试一下:

OK, 大功告成。


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注