1. 云栖社区>
  2. 博客列表>
  3. 正文

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

etherdream 2017-11-09 11:13:31 浏览2647 评论5

网络安全 算法 HTTPS 前端 负载均衡 脚本 数据同步 带宽 github Geek

摘要: 免费空间大多有宽带限制,因此速度通常不怎么理想。不过,我们只需对网站做些改造,就能充分利用这些资源,从而打造出一个宽带无限的网站 —— 即使遇到 DDOS 攻击甚至服务器关闭,也可以让部分用户正常访问!

前言

前些年断断续续写的,最近突然想起来,于是翻出来又补充了一些,目前整理了几篇:

配图是 SVG 格式的,由于无法上传,目前放在 GitHub Pages 上。如果速度很慢或者被墙,可以开代理试试。

免费空间

自从学习网页制作那天起,就开始期待有朝一日能有个自己的网站。

尽管当时有不少免费空间,对于简单的个人网站也够用了,然而像我这样挑剔的,试用后几乎都不怎么满意 —— 要么会偷偷插些广告,这对于有洁癖的我是无法容忍的;要么奇慢无比,而我那些「炫酷」的页面充斥了大量图片和特效,也不懂得优化,所以每次传到空间后,效果总是惨不忍睹。

也许你会说,为什么非要用免费的,花钱买个好点的配置不就得了。不过那时零花钱十分有限,每天几块钱除了早饭偶尔买些书之外,所剩无几。用在网站空间上?压根就没有过这样的念头!好在有大把的时光,于是每当闲暇时,便开始鼓捣一些极(diao)客(si)的方案,尝试将免费空间变废为宝。

有次耐下心来仔细分析,发现一些空间并没有想象中那么慢 —— 如果网页只有几个字符的话,还是很快就能出现的。只是我的网页里图片太多了,光背景就是一组高清大图。。。加上各种限速,所以才会显得十分缓慢。

客观地说,这些空间不算太差,至少延时并不高,只是带宽稍小而已。

既然找到痛点,那就能对症下药了。当然,前提还是不!能!花!钱!于是被迫开启脑洞,激发各种猥琐思路:)

改进

免费空间 —— 既然是免费的嘛,一个费用是 0,一百个也是 0,为何不多注册几个呢?

然后,从中选一家「延时最低」的专门放网页,其他的则用来放图片 —— 也许你也猜到了,只要对网页做些调整,把所有的图片都改成「绝对路径」,从不同的站点分别加载。这样,就能享受好几倍的免费带宽了~

1.svg

事实上有些插广告的免费空间,只会篡改网页或脚本文件,图片倒不会变化。于是这些空间就能充分利用起来~

要是脸皮厚的话,甚至还可以打起论坛、相册、网盘、图床的主意,寻找那些附件可外链、下载速度快的网站,进一步扩充免费资源的节点~

2.svg

只要节点充足,带宽显然是管够的!

不过,要同时维护这么多资源,显然是很麻烦的。因此需要一套自动化工具,用于各个节点的数据同步;若要利用论坛附件,还得实现更多功能,例如自动上传、外链检测、文件名记录、列表管理、定期维护。。。

此外,前端网页也需进行改造。为了方便使用,还得开发一个 JS 脚本,对页面中的图片路径自动调整。这其中涉及不少细节,例如站点选择的算法、无效资源的切换、本地缓存的命中。。。

看起来很有趣吧,似乎是一个前端版的负载均衡:) 要是算法够好、节点够多的话,估计 CDN 都可以省了~

缺陷

当然想象总是美好的,但真要放在现实中,估计没一个网站会这么做 —— 谁会为了省一点带宽费用,把原本很简单的东西搞得这么复杂呢。

除了复杂之外,风险也会大幅增加。某些节点要是往图片里加些水印、广告之类的倒还好,要是加入些非法反动内容,那简直就得不偿失了!

况且这样滥用免费资源,感觉也不太好意思。于是简单尝试了一段时间后,觉得意义不大又麻烦,便不再折腾。

直到多年后的一天,又回想起这个方案。。。

下一篇

本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

用云栖社区APP,舒服~

【云栖快讯】哪个编程语言最热门?各个专业领域的技术趋势是什么?如何才能更快速的踏上技术进阶之路……云栖社区2017中国开发者大调查火热进行!答卷可抽奖,红轴机械键盘、天猫精灵,丰富好礼大概率抽取  详情请点击

网友评论

1F
小柒2012

阿里云ECS这么便宜 干么搞得那么费劲 况且还有学生机

etherdream

最早研究那会还没有阿里云呢,淘宝支付宝都还没用过😂
现在研究这个,主要是在尝试通过 Service Worker 实现去中心化的网站,不怕 CC、DDOS。

苟日新

百花齐放是因为条件有限,高人都废N多脑细胞,当资源具备了就很少有这局面了。

评论
2F
尼古拉斯雷

很有意思

3F
北海初晴

你觉得加这么多外链你的index从不同外链上获取图片会更快? 加载外链图片考验的不止是图片存放空间上的带宽,你主页面获取图片难道不需要本地带宽? 就好比加载一个视频,人家带宽高你带宽低,你觉得加载会快吗?

(来自社区APP)
etherdream

本篇讨论的宽带瓶颈当然是在单个站点上啦,不然还有什么意义

评论
4F
hikingx

ECS已经白菜价了

5F
妙正灰

免费空间主要是不稳定,今天还在的,明天就跑路了

etherdream

目前 GitHub Pages + cloudflare 还是比较稳定的,现在就用这个组合了。而且有 Service Worker 离线启动,就算不稳定也没事:)

妙正灰

@etherdream GitHub Pages + cloudflare 这是啥龟速+易墙组合啊~

etherdream

@妙正灰 就首次加载一个几十 bytes 的 html 和 js 文件。之后全走 Service Worker 代理。

评论
关注
etherdream
爱好网络安全,研究 Web 黑科技,探索新想法
5篇文章|19关注
共享带宽提供地域级带宽共享和复用功能,支持同地域下所有弹性公网IP共享带宽,进而让绑定弹性公网IP的云服务器EC... 更多>

国内建站市场NO.1 更多>

阿里云依据网站不同的发展阶段,提供更合适的架构方案,有效降低网站的开发运维难度和整体IT成本,并保障网站的安全性... 更多>

为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本... 更多>
安全技术百问

安全技术百问