建议五:部署HTTP/2或SPDY
最后更新于:2022-04-01 04:49:46
事实上,部署HTTP/2或SPDY并不难。如果你使用NGINX,只要在配置文件中启动相应的协议就可以了,参见这里了解如何启用HTTP/2([PDF](https://www.nginx.com/wp-content/uploads/2015/09/NGINX_HTTP2_White_Paper_v4.pdf))。浏览器和服务器会协商采用什么协议,如果浏览器支持HTTP/2(而且也在使用TLS),就会使用HTTP/2。
配置完服务器后,使用支持HTTP/2浏览器的用户就会基于HTTP/2运行你的应用,而使用旧版本浏览器的用户则会继续使用HTTP/1.x运行你的应用,如下图所示。如果你的网站流量非常大,那么应该监测改变前后的性能,对于性能降低的情况,可能就得撤销更改。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-11-13_56455e89c0dc8.png)
注意:使用HTTP/2及其单连接之后,NGINX某些配置的重要性会很明显,特别要注意的是`output_buffers`、`proxy_buffers`和`ssl_buffer_size`等指令,多测试一下。参见[general configuration notes](https://www.nginx.com/resources/admin-guide/nginx-ssl-termination/),特定的SSL建议([在这里](https://www.nginx.com/blog/nginx-ssl/) and [here](https://www.nginx.com/blog/improve-seo-https-nginx/)),以及NGINX关于SSL性能的白皮书([PDF](https://www.nginx.com/wp-content/uploads/2014/07/NGINX-SSL-Performance.pdf))。
注意:使用HTTP/2传输密文要格外注意。HTTP/2的RFC中有一个[长长的列表](https://tools.ietf.org/html/rfc7540#appendix-A),列出了要避免的加密套件。建议你自己也搞一个表格,启用`ssl_buffer_size`,然后在所有常用的浏览器版本下测试你想用的加密套件。