HTTP/2 可以让我们的应用更快、更简单、更稳定 – 这几词凑到一块是很罕见的!HTTP/2 将很多以前我们在应用中针对 HTTP/1.1 想出来的“歪招儿”一笔勾销,把解决那些问题的方案内置在了传输层中。不仅如此,它还为我们进一步优化应用和提升性能提供了全新的机会!
——《Web 性能权威指南》
Ubuntu18.04 官方源已经包含带有HTTP2模块的 Apache/2.4.29 ,所以我们可以很简单的启用 HTTP2。
1 |
$ sudo a2enmod http2 |
首先启用 http2 模块,然后在虚拟主机的配置文件中或者在Apache2的全局配置文件中加入:
1 |
Protocols h2 http/1.1 |
当客户端支持时优先使用 HTTP2 ,其次是 http/1.1,表明了一种优先顺序。目前为止就已经启用完成了,但如果你是使用的 Apache2+PHP 架构的应用程序,由于 mpm_prefork 模块不支持 mod_http2,所以我们需要切换 mpm_prefork、mod_php 到 mpm_event 和 php-fpm 来解决这个问题。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 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 |