实际上,Apache 2.4.17或更高版本支持HTTP2模块(为了更好的稳定性,建议至少使用2.4.23),但Ubuntu 16.04或14.04的默认Apache版本低于最低要求,因此为了升级您的Apache,请按照以下步骤进行:
$ sudo add-apt-repository -y ppa:ondrej/apache2
$ sudo apt-key update
$ sudo apt-get update
然后运行
$ sudo apt-get --only-upgrade install apache2 -y
您将会收到两次提示,如下所示:
*** apache2.conf (Y/I/N/O/D/Z) [default=N] ?
两次都按 Y 键并继续。
检查您的 mods-available 文件夹,您将看到 http2.load 文件。
$ sudo a2enmod http2
你将会获得以下输出
启用http2模块。要激活新配置,您需要运行:service apache2 restart
Upgrade Apache to Latest
apt-get install software-properties-common python-software-properties
add-apt-repository ppa:ondrej/apache2
apt-get update -y
apt-get upgrade -y
apt-get install apache2 -y
apache2 -v
Apache版本应该是2.4.25或更高。
Enable it from mod_http2
a2enmod http2
service apache2 restart
Add Self-Signed OR Valid SSL to your website to enable http2 on your server.
Link:- https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
Add HTTP/2 Support to Apache2 Virtual Host file. Example :
<VirtualHost *:443>
Protocols h2 http/1.1
ServerAdmin you@your-site.com
ServerName your-site.com
...
</VirtualHost>
重新启动Apache2服务
service apache2 restart
Apache2 on HTTP/2 does not support in mpm_prefork mode, change it to mpm_event.PHP version should be php5.6 or greater.
service apache2 stop
apt-get install php7.1-fpm
a2enmod proxy_fcgi setenvif
a2enconf php7.1-fpm
a2dismod php7.1
a2dismod mpm_prefork
a2enmod mpm_event
service apache2 start
现在,通过访问您服务器的域名或公共IP地址来测试您的配置,如下所示:https://server_domain_name_or_IP
检查HTTP/2协议是否正常工作,请在浏览器中打开“检查元素”,并在网络部分中检查http协议版本。
我认为仅在Ubuntu 16.04或Ubuntu 14.04上升级apache2是不稳定的,直到您将操作系统升级至最低ubuntu 18.04才能解决该问题。在我的情况下,仅升级apache2后,它显示了无法解决的异常,直到我进行全新安装ubuntu 18.04以启用HTTP/2模块。
希望这可以帮助到您。