低成本打造一个带宽无限的网站(三)

简介: 前端代理 HTML5 时代的黑科技层出不穷,但最具创新的也许要数 Service Worker,它甚至可以颠覆传统的 B/S 网络架构。 顾名思义,Service 是服务程序,而 Worker 常用于多线程。

前端代理

HTML5 时代的黑科技层出不穷,但最具创新的也许要数 Service Worker,它甚至可以颠覆传统的 B/S 网络架构。

顾名思义,Service 是服务程序,而 Worker 常用于多线程。因此 Service Worker(以下简称 SW)是一种独立于页面、可持续运行的浏览器后台程序。

SW 提供了一组 API,可让网站开发者拦截自己站点下 所有页面 产生的 所有请求,并且能自定义响应结果。(除了一些特殊请求无法拦截)

这,如同在本地开启一个反向代理服务!

有了这么逆天的功能,在前端做负载均衡就非常容易了,甚至还能实现过去不敢想象的效果 —— 实时无缝的切换。

实时切换

作为代理,当 SW 加载上游资源失败时,可选择不返回错误结果,而是尝试后备站点再次加载,直到返回正确结果,才响应给下游网页:

在网页看来,这只是一次普通的请求与响应 —— 也许用时更长一些,但结果仍是正常的。SW 中的重试细节,对于业务是完全透明的!

相比 DNS 最少也有数秒的缓存时间,这种通过程序控制的方案,能在极短的时间内切换源站点。这样即使某些节点出现故障,页面甚至都毫无感知!

校验加密

除了能改变 URL 之外,SW 当然还能操作返回的数据。

这意味着,我们可以增加一个校验机制,用以检测资源是否遭到篡改。于是那些插广告、加水印之类的问题,就能很好解决了!

此外,我们还可以对原始数据进行加密,再由 SW 解密。这对于私密性不高的节点,很是有意义。

例如用 Raw Git 作为免费空间,我们所有的文件都能在 GitHub 仓库里找到,任何人都可以轻易查看。但如果对文件进行加密,同时对 SW 中的解密算法进行混淆保护,就能增加查看难度了 —— 至少 GitHub 的搜索功能、以及普通的蜘蛛,是不会抓到明文内容了。

更进一步,我们甚至还可以对文件名进行 Hash 再存储。这样,暴露的只是一堆乱七八糟、没有目录层次的文件!

离线启动

前面我们提到,SW 能拦截页面里的请求。事实上 SW 开启之后,访问页面本身也会经过 SW。

这意味着:用户只要装上 SW,之后所有的请求都可代理到外部节点上,于是可大幅减少自己网站的流量消耗!

这样就算我们的网站挂了,但只要有一个节点可用,用户仍能正常访问!

精简启动

为了能在带宽吃紧的情况下迎接新用户,我们参照之前「迷你启动器」的方案,把安装 SW 所需的资源,精简到最小 —— 最终只需两个极小的文件:html 和 js 文件。(SW 的脚本必须在当前站点下)

用户首次访问时,无论访问哪个 URL,我们都返回这个 html 文件,用以安装 SW 服务;安装完成后,页面自动刷新,这时所有请求都走 SW 代理了!

关于 html 的内容,和之前探讨的一样,所有功能都由外部脚本实现:

<script src=//free-host-n.net/boot.js></script>

而 SW 脚本的内容,同样也可以放置在外部:

importScripts('//free-host-n.net/sw.js')

于是,我们的站点只需承载两个极小的文件,就能获得无尽的带宽!

改造成本

相比之前强缓存的方案,如今使用 SW 无需对前端做任何改造,页面里的资源仍保持原始路径即可。如同使用 VPN 一样,无需对应用程序对任何修改,开启后流量就能自动转发到代理上,用起来非常简单。

这样,任何一个网站都能轻松接入使用!

事实上 SW 可实现的效果远不止这些,我们继续深入挖掘吧。

下一篇

目录
相关文章
|
4月前
|
安全 定位技术 数据中心
什么是海外服务器,优势有哪些,延迟大概在多少
至于延迟,这主要取决于用户的地理位置和服务器的地理位置。一般来说,用户和服务器之间的距离越远,网络延迟就越大。对于跨洲访问,延迟可能会在几十到几百毫秒之间。但这也受到许多因素的影响,如网络路由、带宽等。
75 0
|
6月前
|
消息中间件 存储 容灾
AutoMQ 云上十倍成本节约的奥秘: SPOT 实例
AutoMQ Kafka 优化设计,充分利用云基础设施,尤其是成本低廉的Spot实例,实现公有云成本节约。尽管Spot实例的不确定性可能导致服务中断,AutoMQ通过Broker无状态化、快速弹性扩展和Serverless支持,以及应对Spot实例回收的优雅停机和容灾机制,确保了可靠的Kafka服务。混合使用按需实例以保证关键服务稳定,同时在面临Spot实例库存不足时,具备回退到按需实例的能力。AutoMQ Kafka通过创新技术在稳定性与成本之间找到了平衡,为用户提供灵活且经济高效的解决方案。
115 0
AutoMQ 云上十倍成本节约的奥秘: SPOT 实例
|
6月前
|
网络架构
【专栏】网络技术:网速和带宽的区别,带宽是网络的最大传输能力,而网速是实际传输速率,受网络拥堵、硬件性能等因素影响
【4月更文挑战第28天】本文探讨了网速和带宽的区别,带宽是网络的最大传输能力,而网速是实际传输速率,受网络拥堵、硬件性能等因素影响。两者关系可比喻为道路车道数与车辆速度。了解这些有助于优化网络体验,如选择合适带宽、升级硬件、使用有线连接、管理带宽占用和连接时机。理解二者差异能帮助我们更好地评估网络服务并提升上网效率。
189 1
|
弹性计算 运维 监控
阿里云万郁香:多样付费选择构筑成本最优的弹性体验
云上成本优化三部曲:云上资源归属拆解、确定资源需求及购买优先级、选择最佳的付费方式。
阿里云万郁香:多样付费选择构筑成本最优的弹性体验
|
负载均衡 算法 Serverless
函数计算助力石墨文档突破性能瓶颈,有效节省58%服务器成本
石墨文档 是中国第一款支持云端协作的企业办公服务软件(功能类比于Google docs、Quip等),可以实现多成员多终端的在线实时协作,同步响应速度达到毫秒级,是团队协作的最佳选择。 石墨文档还是一款具有中国式美感的科技产品,2015 年获得极客公园最佳互联网创新产品 50 强。
4924 5
|
存储 开发者
UPYUN 又拍云进行大幅度降价:数据量持续高速增长致成本降低
今天我们刚刚得到了SegmentFault 与开发者的好伙伴又拍云的官方消息,UPYUN(又拍云)进行了大幅度的价格调整。本次价格调整主要表现在存储空间和流量价格的全面下调,存储空间最高降价67%,流量最高降价40%。据了解,UPYUN本次进行价格调整的根本原因是过去一年UPYUN平台数据量持续高速增长令整体成本降低所致。
173 0
|
存储 边缘计算 缓存
如何降低 PB 级带宽成本?揭秘优酷“云边端”分发网络
2019 年,整个互联网的绝大部分流量来自于视频服务,优酷,每日承载了上亿用户的几十 亿的视频观看,每日消耗的互联网流量高达 Pb 级别。在如此高并发高流量的项目中,如何在保 障用户体验的前提条件下,有效的提升服务器以及带宽的利用效率,实现消峰填谷,降低服务 器和带宽成本,成为我们技术人的工作重心。
如何降低 PB 级带宽成本?揭秘优酷“云边端”分发网络
|
物联网
挑战设备接入量,节省最高92%资费
2020年3月31日前,设备接入达到指定量级,即可获得1.5-0.8折折扣,物联网卡和物联网平台设备接入服务劲省92%资费。
26731 0
挑战设备接入量,节省最高92%资费
|
弹性计算 负载均衡 固态存储
业务系统的带宽能力
业务系统的整体带宽能力,取决于公网带宽、网卡速率以及磁盘吞吐量,本文量化分析阿里云上部署,可能存在的瓶颈,以及提供参考建议
1176 0
业务系统的带宽能力