LNMP(Nginx)下http/2 安装配置教程
在过去的2015、2016年里Let's Encrypt成立并迅速发展,很多站点都在使用Let's Encrypt或其他SSL证书部署https站点,说到https时我们也会提到HTTP/2,HTTP/2是啥,能不能吃、有啥好处我们就不废话了,下面我们就对HTTP/2在LNMP(Nginx)环境下的安装配置。
说http/2之前我们要说一下http/2在浏览器下的支持情况:Chrome 41+、Firefox 36+、Safari 9+、Windows 10的 IE 11 和 Edge,Chrome 51+必须要开启ALPN才能支持HTTP2,又因为OpenSSL 1.0.2+才有ALPN支持,且又因为OpenSSL 1.0.2+普及较少,目前只有Ubuntu 16.04+、Fedora 24+是OpenSSL 1.0.2版本,其他CentOS、Debian全部及低于前面Ubuntu和Fedora版本的系统都是低于1.0.2,也就是不支持ALPN的,所有在Chrome 51+上是不会是HTTP/2访问的,要想更好的让个浏览器兼容就需要开启ALPN,也就需要让nginx使用OpenSSL 1.0.2+编译。
LNMP一键安装包默认是支持并编译安装了http2了的,1.3及之前的版本并未使用OpenSSL 1.0.2,最简单的方法就是下载lnmp 1.4或更高版本的lnmp安装包,运行Nginx升级脚本就是使用新版的OpenSSL 1.0.2进行编译安装的:
wget http://soft.vpser.net/lnmp/lnmp1.4beta.tar.gz && tar zxf lnmp1.4beta.tar.gz && cd lnmp1.4 && ./upgrade.sh nginx
按提示输入nginx的版本号,不想换版本号之间写当前的版本号就可以,如果是Nginx版本低于1.9.5也是不支持http/2的。
如果你用的是其他环境可以自己去 https://www.openssl.org/source/ 下载openssl 1.0.2版本的源码,在nginx编译时加上--with-openssl=openssl解压后的源码目录。
另外Nginx虚拟主机配置文件listen里必须要有http2
配置文件参考:https://www.vpser.net/build/letsencrypt-free-ssl.html ,如果是lnmp 1.4的用户也可以直接使用命令 lnmp vhost add (未添加过该域名)或 lnmp ssl add (添加过该该域名的http站点)添加虚拟主机提示"Add SSL Certificate (y/n)" 输入y 按提示添加SSL证书或使用Letsencrypt自动生成证书。
安装设置好后怎么查看网站是否已经启用了http/2呢?
Chrome地址栏输入:chrome://net-internals/ 点击左侧"HTTP/2"选项,"Protocol Negotiated"栏后显示h2 就是当前使用的http/2协议。
Firefox需要安装第三方组件,如:HTTP/2 and SPDY indicator,地址栏后带闪电就是http/2。
另外需要注意的是网站内的所有资源连接必须是https://的或// 自动识别的,要不然不会显示绿锁。
有问题可以本文留言或论坛反馈
VPS论坛邀请码:56a274b988V5QmeA 有效期至:2017-2-17 09:10
>>转载请注明出处:VPS侦探 本文链接地址:https://www.vpser.net/build/lnmp-nginx-http2.html
以升级到http2,虽然没啥感觉,还是有股莫名的兴奋