昨天有读者反映我的网站passjava.cn崩溃了。原因是我的网站引用了本站cdn.jsdelivr.net的静态文件,导致本站崩溃!是一个国际化的免费CDN站点,可以使用很多公共的npm包和Github仓库作为静态资源服务器,国内外很多知名网站都使用过。可能有的同学对CDN不了解,这里做一个解释:内容分发网络(ContentDeliveryNetwork,简称CDN)将站点内容分发到遍布全球的海量加速节点,让用户就近获取所需内容,避免网络拥塞。、跨运营商、跨地区、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度,减少响应时间,提供流畅的用户体验。此CDN是免费且快速的。谁说免费卖淫不好?真的吗?墨菲定律我们的生产环境几个月前爆了一次,客户反映后台管理系统崩溃,也是因为引用本站的JS脚本文件加载不出来。巧合的是,前天晚上,我居然发现这个网站不能访问了,不过一个小时后又恢复了。但是昨天下午有读者反映长时间无法访问,所以这是生产级的T0事故。这就是墨菲定律!如果事情有可能会出错,不管这种可能性有多小,它都会发生。报错截图如下:这种情况怎么办?关于修复方案,先安抚一下读者的情绪。用易于理解的语言描述问题的原因。提供修复。提供修复完成的时间。晚上回到家后,我就赶紧开始修理。其实修复方案很简单,将所有引用该CDN的静态文件替换为可访问的链接即可。具体修复方案如下:先把cdn.jsdelivr.net的所有静态文件一个一个下载下来(浏览器直接输入文件链接,然后保存)。我的网站上引用了javascript脚本、css文件、json文件。然后把这些下载好的静态文件全部放到自己的服务器或者CDN上。替换您自己网站内的链接。这里有一个问题:这个网站cdn.jsdelivr.net已经崩溃了,请问上面的静态文件怎么下载呢?解决方法一:等网站恢复后再下载,反复尝试,有可能会进不去。方案二:我已经把我使用的静态文件上传到github仓库了。如果你也是用docsify框架搭建的网站,可以直接访问这个Github仓库下载。https://github.com/Jackson0714/static-files关于CDN我个人购买了七牛云CDN服务和对象存储。网站流量不大,所以资费也不贵。首先把所有的文件丢到七牛云的对象存储中,然后获取文件对应的CDN地址,替换到自己的网站上。注意:部分js脚本代码也引用了cdn.jsdelivr.net文件,所以需要更改js脚本代码,比如我引用的github上的autoload.js文件。如果不自己购买CDN服务,可以直接上传到大厂商的对象存储,比如七牛云、阿里巴巴、腾讯的对象存储,都是提供免费空间的。上传到自己的公共对象存储后,就可以得到静态文件的公共链接。如下图,我上传到七牛云上的对象存储,七牛云会给我提供一个CDN链接。另外需要注意的是,如果覆盖上传文件到自己的对象存储,需要刷新CDN,否则网站加载的文件还是之前上传的,导致修改后的效果不可见在网站上。在如下图刷新界面,填写刷新目录,点击刷新,但是有刷新限制,不要频繁刷新。该网站已恢复。经过2个小时的紧急修复:下载文件、修改js脚本、上传文件、刷新CDN、更换链接等一系列操作,我这个破网站终于恢复正常了。赶紧给群里的读者反馈网站已经恢复了。可问题是读者扣了我这个月的表现。..最后要说的是,我为我的小破网站买了最低配置的服务器,所以不要对我的网站进行压力测试
