给网站加加速!下一代CDN(EdgeOne/边缘安全加速)使用与配置体验
本文最后更新于 2024年10月10日 早上
随着访问量的增加和用户需求的多样化,网站的加载速度和稳定性逐渐成为影响用户体验的关键因素。尤其是服务器的带宽有限,面对一些图片数据,显得“力不从心”。CDN技术,就很好的解决了这个问题,但是价格也是用户思考的问题。
EdgeOne不仅继承了传统CDN的核心优势,更在速度、安全性和智能化等方面进行了全面升级。它通过将计算和存储能力部署在离用户更近的边缘节点上,大幅减少了网络传输的延迟,从而实现了更快的网站加载速度。同时,EdgeOne还集成了先进的安全防护机制,有效抵御了各种网络攻击,确保了网站的安全稳定运行。
配合腾讯云的售后售前客服服务,相比其他厂商的新一代CDN,上手更加容易,咨询也更方便。
这次就让我们一起体验一些,把薄荷输入法的文档网站,这SSR(Server Side Rendering 服务端渲染)项目,接入 EdgeOne 内。
EdgeOne
腾讯云EdgeOne的全称是边缘安全加速平台 EO(Tencent Cloud EdgeOne),其实主要有两个方面的特性:
- 边缘节点加速: 通过在全球部署广泛的边缘节点,利用这些节点的地理优势,将内容和服务缓存至离用户最近的位置。这种架构大大减少了数据传输的距离和时间,从而显著提升了用户的访问速度和体验。
- WAF、DDoS等安全防护服务: WAF能够有效防御SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等多种常见的Web攻击,保护网站免受恶意访问和数据泄露的风险。同时,DDoS防护服务可以抵御大规模的流量攻击,确保网站在高流量压力下的稳定运行。这些安全防护措施共同为用户提供了一个安全可靠的网络环境。
所以,EdgeOne在给网站加速的同时,流量计费只统计”干净“流量,还可以一定程度增加网站的安全性。这也是 EdgeOne 被称为下一代CDN技术的原因之一。
对比CDN
特性分类 | 功能描述 | EdgeOne | CDN | ECDN | SCDN |
---|---|---|---|---|---|
更丰富的功能 | 静态内容分发加速 | ✓ | ✓ | ✓ | ✕ |
动态内容智能加速 | ✓ | ✕ | ✓ | ✕ | |
DDoS/CC 防护 | ✓ | ✕ | ✕ | ✓ | |
Bot 防护 | ✓ | ✕ | ✕ | ✓ | |
Web 防护 | ✓ | ✕ | ✕ | ✓ | |
流量调度 | ✓ | ✕ | ✕ | ✕ | |
自定义推送实时日志字段 | ✓ | ✕ | ✕ | ✕ | |
边缘函数 | ✓ | ✕ | ✕ | ✕ | |
规则引擎 | ✓ | ✕ | ✕ | ✕ | |
四层代理 | ✓ | ✕ | ✕ | ✕ | |
DNS 记录托管 | ✓ | ✕ | ✕ | ✕ | |
更省心的计费模式 | 套餐模式 | ✓ | ✓ | ✕ | ✓ |
资源包抵扣 | ✓ | ✓ | ✕ | ✕ | |
仅对防护后流量计费 | ✓ | ✕ | ✕ | ✕ | |
超出用量后付费 | ✓ | ✕ | ✕ | ✕ | |
“干净流量”计费 | ✓ | ✕ | ✕ | ✕ | |
更简单、灵活的配置方式 | 站点全局一键配置 | ✓ | ✕ | ✕ | ✕ |
场景化推荐配置 | ✓ | ✕ | ✕ | ✕ | |
免费证书 | ✓ | ✕ | ✕ | ✕ |
以上表格详细对比了EdgeOne与CDN在不同功能上的差异,帮助用户更好地了解两者之间的区别。
SSL自动续期
目前,SSL 厂商已经不提供免费的一年期的 SSL 证书了,这也导致腾讯云和阿里云的证书管理、托管内,可以申请的证书,只有三个月,并且不能自动续期。我们询问智能客服也可以知道目前 SSL 证书的现状:
至于为什么只提供三个月呢? 腾讯的智能客服还是挺智能的,不但给出了原因(上流 SSL 厂商停止颁发免费的一年期 SSL,导致腾讯云等厂商无法提供);同时也提供了解决方法:
难怪 V2EX 等论坛,都称腾讯云为“良心云”。
其实,免费的 SSL 证书,只能通过重新申请来进行续期。 但是我们有提及 EdgeOne 有免费证书功能,这个功能有点类似于我们之前提到的 acme.sh 自动续期。
也就是 EdgeOne 会自动提供一个三个月期限的 SSL 证书来实现 HTTPS,并且在 SSL 即将到期的时候(通常是到期前的一个月开始尝试)自动续签,期限会自动补齐为三个月。
说实话,腾讯云的售后和售前体验,还是挺不错的; 目前的智能客服和自助检测工具,就足够大部分人使用了。就算走人工服务,人工也很专业,部分问题还会主动打电话“手把手教”。
这点还是很方便的,类似于 Cloudflare 的全站SSL,不同的是, Cloudflare 使用的是 Google Trust Services 的 SSL ;同时,对于中国大陆来说,Cloudflare 的CDN有些劣化网络。
安全防护
安全防护,可以说是 EdgeOne 的重要特性配合强大的规则,实现WAF功能。举个例子,我的薄荷输入法的文档网站接入后,使用 EdgeOne 的规则防护,我们浅浅地使用' OR '1'='1'; --
这样的SQL注入试试看:
当然,上述的规则防护,属于L7防护,也就是OSI七层模型里的第七层: 网络层,与此同时DDOS的攻击、Java反序列化利用类漏洞、RCE的漏洞利用行为和Spring Webshell上传的绕过手法等等也是在这一层被防护。
相比之下, EdgeOne 也支持在传输层防护,但是这个更适用于企业客户,个人版本和试用版本就不支持了:
“干净”流量
EdgeOne 有一个重要的特性,那就是计费时候,只计算“干净”流量。使用官方图来看看:
即仅对通过安全防护功能处理后的流量和请求用量计费。这意味着被安全防护策略过滤或拦截的流量不会产生费用。
这点实在太好用了,毕竟个人开发者不敢使用CDN,很大程度就是怕用一晚,被攻击后,“车”没了、“房”没了;
而 EdgeOne 只统计防护后的流量,这样确保你网站可以抵御 DDOS 攻击的同时,费用也不会很贵,性价比很高。
当然,小伙伴们不要为了测试,就DDOS攻击自己的网站哦,如果流量没有达到100Mbps,那么是不会启动DDOS防护的哦,只有规则在生效。
操作前提
操作前提,自然和CDN、ECDN等产品类似了:
- 需要拥有一个域名;
- 如果你需要加速中国大陆地球,那么你这个域名还需要进行备案;
- 这个域名需要没有被标记,比如:域名内有敏感屏蔽词等。
graph LR
A[拥有域名] --> B{加速中国大陆}
B --是--> C[域名需进行备案]
B --否--> D[确保域名未被标记]
C --> D
D --> E[设置 EdgeOne 加速服务]
我们顶级域名,可以在 EdgeOne 的控制台内进行添加:
本教程同步发布在:
开发者爱好群
制作教程不易,寻找教程也不易,找到志同道合的小伙伴更是知音难觅。
- 开发者爱好群: 👉 如果你对云服务器、CDN、云数据库和Linux等云计算感兴趣,亦或者喜欢编程、设计、产品、运营等领域,欢迎加入我们的开发者爱好群,一起交流学习(目前可能就我一个人?🤔,毕竟才刚刚创建~)。
当然,也欢迎在B站或YouTube上关注我们:
- Bilibili: https://space.bilibili.com/355567627
- YouTube: https://www.youtube.com/@mintimate/featured
更多:
套餐选择
个人使用,建议选择预付费版本,让我们有一定的预期。
如果你并没有购买 EdgeOne 的套餐包,需要一个购买,为大家申请到的专属福利:
使用服务器的专属连接,享受超低折扣( ◔ ڼ ◔ )
目前EdgeOne还有体验包,我们可以使用体验包先进行上手:
如果体验包过期,可以使用刚刚的博客链接,购买个人版:
对于个人网站,基础套餐就已经足够我们使用了。也就是:
- 静态内容分发网络(CDN),且仅统计清理后的流量,仅收取这部分流量费用;
- 平台默认 DDoS 防护、基础 CC 防护等安全规则防护;
- 免费且自动续期的SSL,HTTPS不用愁。
这些就已经足够了。
当然,对于企业或者大型团队项目,最好根据网站和应用的类型考虑是否使用企业版本。比如:金融行业、游戏行业服务,使用企业版本,有更好的防护,用来保证在攻击过程中,不会影响玩家和用户体验~
如果你实在不知道公司的业务是否需要用企业版,或者个人开发者使用个人版本,资源是否充足、够用;那么推荐可以问问腾讯云的客服,感觉客服还是很专业的,描述一下业务的 PV 和 24 小时流量,他们一般都会有专门人员测算,非常专业。
域名接入
之前我们使用 CDN,通常的接入方式是 CNAME 接入(Canonical Name Record)。也就是在 DNS 内添加一条 CNAME 记录,把当前的解析记录进行转移:
graph LR
A[用户访问网站] --> B{检查 DNS 记录}
B --A 记录--> C[直接返回 IP 地址]
B --CNAME 记录--> D[返回别名记录]
D --> E[查找别名对应的 IP 地址]
E --> F[返回 IP 地址]
F --> G[建立连接并访问网站]
subgraph CDN 工作原理
B --CNAME 记录--> H[返回 CDN 服务提供商的域名]
H --> I[CDN 服务商解析 CNAME 记录]
I --> J[返回 CDN 服务器 IP 地址]
J --> G
end
对于 EdgeOne,它的接入方式有两种方式,前端有三种引导途径:
- CNAME 接入: 和 CDN 一样,单条的域名指向 EdgeOne 提供的 CNAME 地址,当用户访问该域名时,DNS 解析将请求引导至 EdgeOne 的边缘节点;
- NS 接入: 修改域名的NS记录,指向 EdgeOne 的DNS;需要使用加速服务的,可以直接一键开启,不需要的可以直接 A 类型解析;
- DNSPod 托管接入: 实际上,如果你的域名已经 NS 接入DNSPod托管了,那么就相当于 NS 接入了。如果你域名之前就是使用 DNSPod 托管,那么建议直接选择这一项。
DNSPod 托管接入
DNSPod托管接入是最方便的了。我的域名是直接在腾讯云内购买、备案的,用的也是DNSPod:
在 EdgeOne 内部可以直接一键配置:
CNAME 接入
CNAME 适用于域名主题解析不想接入 EdgeOne,或者说不想域名解析的全部记录使用 DNSPod,比如我的博客域名,日常使用的量挺大的,如果全部接入 EdgeOne,那么对于一个个人开发者来说,钱包有些顶不住:
这个时候,我们就可以使用 CNAME 接入。
之后,我们需要添加 TXT 解析:
切花到 NS 提供商,我们添加这条 TXT 记录:
等待片刻后,点击 EdgeOne 上的验证,即可添加完成:
最后,添加网站,和刚刚不同的是,我们最后一步需要我们手动添加CNAME:
比如我的 DNS 服务使用的是 Cloudflare,那么在 CloudFlare 控制台:
等待片刻后即可生效:
NS 接入
NS 的接入,就不过多赘述; NS 接入,实际就是把 DNS 的解析,由原本使用 Cloudflare、Google DNS 切换为使用DNSPod,进而可以直接使用 DNSPod 托管接入。
根据 EdgeOne 上的提示,切换域名的 DNS 地址:
站点接入
域名接入后,再进行站点接入就非常容易了。我们在 EdgeOne 的控制台上,添加我们需要加速的站点即可:
在出现的二级菜单内,根据引导进行操作:
需要注意:
- 加速域名:
@
是直接将主域名接入,www
、test
将子域名接入; - 源站类型: 加速目标是服务器还是自己的服务器集群,亦或者存储桶等;
填写后,出现网站类型,如果你是个人网站,那么就选择网站加速
即可;存储通等可以选择大文件下载
:
最后,自动或者手动修改解析即可:
部署后的效果:
可以看到,这个时候,我们的解析就已经添加了。接下来,我们看看如何HTTPS。
HTTPS部署
HTTPS 的部署非常丝滑,感觉这才是真真的一键SSL,丝滑程度,堪比 Cloudflare。
部署 HTTPS,我们只需要在域名配置
内,对已经添加的域名进行HTTPS配置
:
如果你之前没有使用腾讯云的SSL 托管证书功能,那么这里直接使用申请免费证书
即可:
自动申请证书:
使用curl -vvl
查看证书的有效期,可以发现是三个月的有效期:
或者使用Chrome浏览器查看:
也不用担心,正如前文所说的,在到期前会自动续费,丝滑的体验。
使用体验
在使用之前,建议大家检查一下全局观察模式
是否关闭: 默认情况下, EdgeOne 在部署后的一段时间内,全局观察模式
是开启的; 这个时候,EdgeOne 的安全防护(包括基础DDOS攻击防护)是只观察,但是不做出拦截动作。如果你检查配置都没问题,拦截不会出现什么误触,记得把全局观察模式
关闭:
现在,让我们看看使用的体验。首先看看缓存的命中:
1 |
|
我们可以在 EdgeOne 的控制台加速与安全-站点加速
上,查看缓存规则:
同时,如果你的EdgeOne还开启了更高级的安全防护,在加速与安全-安全防护-Web 防护-站点级防护策略
内看到更多的托管规则
:
比如,我们开启这些规则的情况下,尝试SQL注入:
END
总的来说,EdgeOne 在加速、安全、智能化等方面都有较传统CDN更出色的表现。同时,一定程度,解决了部分开发者,因为害怕流量被刷和DDOS攻击等问题而不敢使用CDN的顾虑。
我认为 EdgeOne 是有一定”明天“属性的产品,对于用户来说,不用提心吊胆地担心自己站点是否会被刷、企业也可以从复杂的安全配置里解放出来。
期待后续,更多的安全规则功能可以下发,让更多的开发者也可以体验到高级防护功能。毕竟…… 用了试用版的防护后,再开个人版,有点小落差;不过相信这些功能会逐步下放。