你的网站准备好升级http2了么?
Posted 前端面试官
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你的网站准备好升级http2了么?相关的知识,希望对你有一定的参考价值。
你的网站准备好升级http2了么?
当大清朝闭关锁国的时候,洋枪大炮就来逼着你发展科技了;当银行业务发展缓慢的时候,支付宝就来逼着你搞在线金融了;当react授权卡着附加声明的时候,Apache就推动你搞标准授权了;今天谁来推动HTTP的升级呢?
为什么要升级
谷歌说http都会标红,那大概许多个人博客,公司网站都没有https/http2,打开了可能都会变成这样
这是使用自签名证书的网站的样子,也就是使用的没有通过CA认证的证书
如果真是这样,你的网站访问量怕是要大打折扣,相信有些人都不知道点【高级】可以展开【继续访问】再继续,还有一部分知道的,看到这个大红提示也都不继续了,那么你的 PageView 曲线可能是这样
如果是公司网站,老板肯定要发飙了
所以,升哪个?
我们有两个协议可以选择,https和http2,他们都是【https://】开头,都使用证书,其实两者区别有很多,http2的优势数不过来,最大的区别就是http2支持多路复用
去百度搜【https vs http2】能找到许多解答,当然能翻墙能英语的同学推荐用谷歌,本文旨在引路快速升级http2,对比不在此细数
首先,需要个证书
因为要安全,就需要证书,通过信任链来信任你安全,所以首先你需要一个经过CA认证的证书
这是腾讯云的价格
好在还有人关心我们这些贫困群众
免费的证书,官网 https://letsencrypt.org/
当然了这个免费的是给个人用的,公司的还是去走报销流程吧,毕竟证书链越短越好,花钱的应该会短一些吧
根据你的需求不同,letsencrypt提供了许多种获取免费证书的方法,这里不详细讲,感兴趣可以去看https://letsencrypt.org/getting-started/
将http代理到http2
一般的传统的网站都是nginx的,现在也有很多node全栈的,后面会讲前端同学比较关心的node方案,为什么先讲nginx的呢,因为它不但使用广泛,而且也可以解决node网站的升级问题
作为一个代理,nginx可以在完全不改变现有服务的情况下将http代理到http2,而且letsencrypt的certbot工具有针对nginx的命令,具体步骤如下:
【1】配置好你的域名
【2】使用certbot生成证书
【3】增加http2协议
默认certbot生成证书并添加了https协议(ssl),要添加http2协议只需要在原来的基础上增加http2字样即可
【4】代理到原来的服务
如果你本来就使用的nginx那就不需要设置代理了,代理的话基本上原服务是不需要任何更改的
重启nginx,浏览器再访问就是http2的协议了
【定时更新】
但是免费的还是有些缺点的,就是有效期只有90天,你需要定时更新证书,把这段代码添加到cron job 每天运行即可,certbot会只在有需要的时候进行更新证书的
Node的情况
这里就以express使用为例
【1】同样的第一步生成证书,和nginx不一样的是这里只生成证书,不会修改任何配置
【2】应用证书,app.js
forever start app.js启动就是http2的服务了
【3】定期更新证书
同样将命令加到cron job定时任务
cd /project/path && certbot renew --pre-hook "forever stop app.js" --post-hook "forever start app.js"
一点后台都不碰的纯前端也可以考虑把升http2这件事情和后端同学或者运维同学聊一下,当然我还是觉得纯前端并不像纯金纯银一样有价值。本文中的步骤细节可以参考https://github.com/postor/http-to-http2,点击【阅读原文】就可以访问了
以上是关于你的网站准备好升级http2了么?的主要内容,如果未能解决你的问题,请参考以下文章
Android 12来了,支持更多设备,你的应用准备好了么?