http2协议已经在主流的浏览器上提供支持,是时候升级到http2协议来加速网站。
http2的优缺点网上有一大堆的说明,我主要说2点,1是socket重用,复用,2是https缓存。
socket重用,复用:
这块需要去理解http协议,http协议在1.1的到来,随着keepalive的支持,已经能够支持socket重用, 然而复用仍然无法实现。具体情况是,http协议本身是socket独享的协议,在request请求发送之后,response返回之前,socket是不能被其他请求使用的。它本身是一个管道协议。 http2协议解决了这个问题。导致并行加载数据成为可能.
https缓存:
在https的认证过程中,在客户端,服务端会保留第一次握手的证书,目前如果在nginx上做了集群之后,如果下一次https请求发送到其他的nginx上,是没有这个握手证书,会导致https的认证过程重新处理一次。由于http2的特性,会导致一段时间所有的请求都发送到同一个nginx上,保证https握手证书的有效性。变相的提升性能。
注意事项:
在nginx上配置http2时需要注意两点。
1 openssl的版本,centos上默认的版本无法支持,安装时注意升级openssl的版本。
2 加密算法的优化,在nginx配置https的时候,往往会配置屏蔽部分加密算法。但在开启https的时候需要特别注意,这可能会导致出现浏览器无法访问的情况,特别是一些老版本的浏览器上。 目前我这边是不屏蔽加密算法(最初屏蔽算法之后,我们系统的用户是企业用户,部分人员使用的老版本浏览器,导致无法访问)。