你的网站准备好升级http2了么?

Posted 前端面试官

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你的网站准备好升级http2了么?相关的知识,希望对你有一定的参考价值。

你的网站准备好升级http2了么?


当大清朝闭关锁国的时候,洋枪大炮就来逼着你发展科技了;当银行业务发展缓慢的时候,支付宝就来逼着你搞在线金融了;当react授权卡着附加声明的时候,Apache就推动你搞标准授权了;今天谁来推动HTTP的升级呢?




为什么要升级

谷歌说http都会标红,那大概许多个人博客,公司网站都没有https/http2,打开了可能都会变成这样

你的网站准备好升级http2了么?

这是使用自签名证书的网站的样子,也就是使用的没有通过CA认证的证书


如果真是这样,你的网站访问量怕是要大打折扣,相信有些人都不知道点【高级】可以展开【继续访问】再继续,还有一部分知道的,看到这个大红提示也都不继续了,那么你的 PageView 曲线可能是这样


你的网站准备好升级http2了么?


如果是公司网站,老板肯定要发飙了

你的网站准备好升级http2了么?



所以,升哪个?

我们有两个协议可以选择,https和http2,他们都是【https://开头,都使用证书,其实两者区别有很多,http2的优势数不过来,最大的区别就是http2支持多路复用


你的网站准备好升级http2了么?

去百度搜【https vs http2】能找到许多解答,当然能翻墙能英语的同学推荐用谷歌,本文旨在引路快速升级http2,对比不在此细数

你的网站准备好升级http2了么?



首先,需要个证书

因为要安全,就需要证书,通过信任链来信任你安全,所以首先你需要一个经过CA认证的证书


你的网站准备好升级http2了么?


这是腾讯云的价格

你的网站准备好升级http2了么?

好在还有人关心我们这些贫困群众

你的网站准备好升级http2了么?

免费的证书,官网 https://letsencrypt.org/

你的网站准备好升级http2了么?


当然了这个免费的是给个人用的,公司的还是去走报销流程吧,毕竟证书链越短越好,花钱的应该会短一些吧

你的网站准备好升级http2了么?


根据你的需求不同,letsencrypt提供了许多种获取免费证书的方法,这里不详细讲,感兴趣可以去看https://letsencrypt.org/getting-started/



将http代理到http2

一般的传统的网站都是nginx的,现在也有很多node全栈的,后面会讲前端同学比较关心的node方案,为什么先讲nginx的呢,因为它不但使用广泛,而且也可以解决node网站的升级问题


你的网站准备好升级http2了么?


作为一个代理,nginx可以在完全不改变现有服务的情况下将http代理到http2,而且letsencrypt的certbot工具有针对nginx的命令,具体步骤如下:


【1】配置好你的域名

你的网站准备好升级http2了么?

【2】使用certbot生成证书

你的网站准备好升级http2了么?


【3】增加http2协议

默认certbot生成证书并添加了https协议(ssl),要添加http2协议只需要在原来的基础上增加http2字样即可

你的网站准备好升级http2了么?

【4】代理到原来的服务

如果你本来就使用的nginx那就不需要设置代理了,代理的话基本上原服务是不需要任何更改的

你的网站准备好升级http2了么?

重启nginx,浏览器再访问就是http2的协议了


【定时更新】

但是免费的还是有些缺点的,就是有效期只有90天,你需要定时更新证书,把这段代码添加到cron job 每天运行即可,certbot会只在有需要的时候进行更新证书的

你的网站准备好升级http2了么?


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了么?的主要内容,如果未能解决你的问题,请参考以下文章

如何将网站升级到 http2 php 应用程序

过去的一年,你的认知升级了么?(长文,慎点)

Android 12来了,支持更多设备,你的应用准备好了么?

Ubuntu 升级内核到最新版本

苹果iOS强制HTTPS迫在眉睫,距离2017年只剩1天,准备好了么?

网站访问慢,用CDN加速好还是直接升级服务器好?