前言
因服务器被DDOS攻击导致服务器直接崩掉了,我某个朋友拿我服务器来做测试真的无语了呀.......一秒就打死了.
之前我使用的是七牛云,接下来使用EdgeOne,腾讯出品你值得信赖!
别担心,EdgeOne一站式帮你解决种种烦恼,攻击卡顿都不怵,加速安全皆兼顾!
EdgeOne作为下一代CDN,是腾讯云发布的首款面向全球客户服务的一站式整合型服务产品,
也是国内市场上首款真正意义上的一站式边缘安全加速产品。与传统CDN相比,EdgeOne具备安全、灵活、
高效及敏捷等多重优势,可以基于腾讯全球边缘节点, 为全球客户提供TCP/UDP/HTTP/HTTPS安全防护和加速一体化服务,
满足各种行业与场景的多种业务需求!
边缘安全加速产品都具有哪些安全能力?
支持对 Web 应用层攻击,DDoS 攻击,CC 攻击,BOT/爬虫类攻击进行防护,也支持用户按业务需求,配置自定义复杂访问控制规则。
EdgeOne的接入
进入EdgeOne产品页面进行添加站点
需要进行购买套餐
我们选择 九块九套餐就行了
购买完毕可以看到我们的控制台变化了
验证我们的域名归属权
回到站点列表可以看到我们的站点套餐是个人版本
选择加速区域和接入模式,完成站点接入
选择接入模式,EdgeOne 为您提供了两种接入模式,分别为 NS 接入模式和 CNAME 接入模式,不同的接入模式区别如下:
模式 | NS 接入(推荐) | CNAME 接入 |
---|---|---|
适用场景 | 可修改原有域名解析服务商,将域名解析托管至 EdgeOne。 | 当前域名已托管在其他域名解析服务商处(例如:腾讯云DNSPod),不希望更改原有解析服务商。 |
接入方式 | 只需要去原域名解析服务商修改一次 DNS 服务器,托管域名解析后可针对域名一键开启安全加速。 | 每次新增子域名并开启加速时,都需要去相应的 DNS 解析服务商添加一次 CNAME 记录。 |
验证方式 | 需修改原有 NS 服务器至 EdgeOne 指定的地址。 | 通过添加 DNS 记录或者文本验证的方式验证主域名归属权。 |
调度方式 | 域名开启加速后,可通过 A 记录直接指向最近的 EdgeOne 边缘节点。 | 域名开启加速后,需通过 Cname 调度至最近的 EdgeOne 边缘节点。 |
我这里使用CNAME
点击域名管理、域名配置可以进行切换
添加域名
域名配置指引
@ 直接将主域名 yby6.com 接入
www 将子域名 www.yby6.com 接入
test 将子域名 test.yby6.com 接入
- 将泛域名 *.yby6.com 接入
推荐配置我使用网站加速
进行配置CNAME
进入域名DNS云解析
将主机记录信息替换为EdgeOne
配置完成后将是部署中
DDOS的防御
我们已经部署成功了
接下来访问一下 我滴妈 咋变成不安全了啊!!!!
原来是EdgeOne没配置Https协议导致的那么我们就申请一个呗
同学们就根据这个来一步步的就ok啦,我将不带大家进行了
直接申请免费的会自动进行部署的
部署成功!
测试一下我们的加速
站点接入前,您可以通过打开浏览器,单击 F12 查看开发者工具,之后输入该站点的服务器地址
比如: 直接浏览器输入 127.0.0.1
你自己对应的服务器IP
可以看到我的第一次我是ip直接访问 好慢呀!
第二次测试使用我们配置好的加速域名 yby6.com
可以看到非常的快啊! 缩短到564毫秒啦~
使用Safari浏览器测试结果
感谢腾讯云给我抵抗那些DDOS人的勇气呜呜呜呜~
边缘云函数
部署代码
进行新增策略
我这里直接使用文件名称来作为策略
它还可以有 HOST、URL PATH、URL Full、文件后缀、文件名称、以及全站请求
哈哈哈哈哈!!!太强了啊!
图片自适应缩放
该示例通过获取请求头中的 User-Agent 信息,来识别客户端类型,并使用 fetch API 获取源站图片,根据客户端类型对图片进行缩放,以实现图片自适应缩放的效果。这种实现方式可以提高网站的用户体验,使得图片在不同的设备上都能够以最佳的尺寸呈现。
代码语言:javascript复制addEventListener('fetch', event => {
// 当函数代码抛出未处理的异常时,边缘函数会将此请求转发回源站
event.passThroughOnException();
event.respondWith(handleEvent(event));
});
async function handleEvent(event) {
const { request } = event;
const urlInfo = new URL(request.url);
const userAgent = request.headers.get('user-agent');
// 请求非图片资源
if (!/.(jpe?g|png)$/.test(urlInfo.pathname)) {
return fetch(request);
}
// 移动端图片宽度
let width = 480;
const isPcClient = isPc(userAgent);
// PC 端图片宽度
if (isPcClient) {
width = 1280;
}
// 图片缩放
const response = await fetch(request, {
eo: {
image: {
width,
}
}
});
// 设置响应头
response.headers.set('x-ef-client', isPcClient ? 'pc' : 'mobile');
return response;
}
// 请求客户端类型判断
function isPc(userAgent) {
const regex = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i;
if(regex.test(userAgent)) {
return false;
}
return true;
}
使用URL Path 来匹配后缀图片
通过边缘函数实现自适应图片格式转换
创建函数
代码语言:javascript复制// 浏览器使用图片格式
const broswerFormat = {
Chrome: 'webp',
Opera: 'webp',
Firefox: 'webp',
Safari: 'jp2',
Edge: 'webp',
IE: 'jxr'
};
addEventListener('fetch', event => {
// 当函数代码抛出未处理的异常时,边缘函数会将此请求转发回源站
event.passThroughOnException();
event.respondWith(handleEvent(event));
});
async function handleEvent(event) {
const { request } = event;
const userAgent = request.headers.get('user-agent');
const bs = getBroswer(userAgent);
const format = broswerFormat[bs];
// 无需转换图片格式
if (!format) {
return fetch(request);
}
// 图片格式转换
const response = await fetch(request, {
eo: {
image: {
format
}
}
});
// 设置响应头
response.headers.set('x-ef-format', format);
return response;
}
function getBroswer(userAgent) {
if (/Edg/i.test(userAgent)) {
return 'Edge'
}
if (/Trident/i.test(userAgent)) {
return 'IE'
}
if (/Firefox/i.test(userAgent)) {
return 'Firefox';
}
if (/Chrome/i.test(userAgent)) {
return 'Chrome';
}
if (/Opera|OPR/i.test(userAgent)) {
return 'Opera';
}
if (/Safari/i.test(userAgent)) {
return 'Safari'
}
}
函数触发规则中,配置该函数的触发条件,根据当前的场景需求,您可以配置两条触发条件,以 And 逻辑触发。
该请求 HOST 等于 Image.yby6.com。
该请求 URL Path 等于 /image/*。
当请求 URL 同时符合以上条件时,将触发以上的边缘函数,对图片进行自动处理。
验证边缘函数的生效情况
谷歌浏览器
代码语言:javascript复制在 Mac/linux 环境下,以测试 Chrome 浏览器为例,可以在终端内运行命令:
curl --user-agent "Chrome" https://image.example.com/image/test.jpg -i
查看响应的 Content-Type 信息,是否为 image/webp。
Safari浏览器
代码语言:javascript复制在 Mac/linux 环境下,在终端内运行命令:curl --user-agent "safari" https://image.example.com/image/test.jpg -i
查看响应的 Content-Type 信息,是否为 image/jp2。
EdgeOne使用的体验&心得
经过这次的EdgeOne体验感觉它的功能很强大我还有很多功能都没有去玩、他有规则引擎、安全防护、边缘函数、测试工具、诊断工具等等都可以去玩玩看
我感觉他的性能优势
很强大EdgeOne利用分布在全球各地的边缘节点,可以加速内容传递和响应时间,提供更好的性能。这对于需要低延迟和高带宽的应用程序非常重要。
他的安全性
边缘计算在于更加靠近终端用户,因此有助于减少潜在的网络攻击。EdgeOne提供了多种安全功能,包括DDoS和Web防护,可以帮助保护应用程序免受网络威胁的影响。灵活性
可通过边缘函数EdgeOne使开发人员能够在边缘节点上运行自定义代码,这为构建灵活的边缘应用程序提供了机会.
最后
本期结束咱们下次再见