前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【玩转 EdgeOne】被DDOS了???紧急使用EdgeOne从零玩转EdgeOne搭配网站加速防止再次被DDOS攻击

【玩转 EdgeOne】被DDOS了???紧急使用EdgeOne从零玩转EdgeOne搭配网站加速防止再次被DDOS攻击

原创
作者头像
杨不易呀
修改2023-10-22 18:26:31
1.6K11
修改2023-10-22 18:26:31
举报
文章被收录于专栏:杨不易呀杨不易呀

前言

因服务器被DDOS攻击导致服务器直接崩掉了,我某个朋友拿我服务器来做测试真的无语了呀.......一秒就打死了.

之前我使用的是七牛云,接下来使用EdgeOne,腾讯出品你值得信赖!

别担心,EdgeOne一站式帮你解决种种烦恼,攻击卡顿都不怵,加速安全皆兼顾!

EdgeOne作为下一代CDN,是腾讯云发布的首款面向全球客户服务的一站式整合型服务产品,

也是国内市场上首款真正意义上的一站式边缘安全加速产品。与传统CDN相比,EdgeOne具备安全、灵活、

高效及敏捷等多重优势,可以基于腾讯全球边缘节点, 为全球客户提供TCP/UDP/HTTP/HTTPS安全防护和加速一体化服务,

满足各种行业与场景的多种业务需求!

边缘安全加速产品都具有哪些安全能力?

支持对 Web 应用层攻击,DDoS 攻击,CC 攻击,BOT/爬虫类攻击进行防护,也支持用户按业务需求,配置自定义复杂访问控制规则。

EdgeOne的接入

进入EdgeOne产品页面进行添加站点

img
img

需要进行购买套餐

我们选择 九块九套餐就行了

img
img
img
img

购买完毕可以看到我们的控制台变化了

img
img

验证我们的域名归属权

img
img

回到站点列表可以看到我们的站点套餐是个人版本

img
img

选择加速区域和接入模式,完成站点接入

选择接入模式,EdgeOne 为您提供了两种接入模式,分别为 NS 接入模式和 CNAME 接入模式,不同的接入模式区别如下:

模式

NS 接入(推荐)

CNAME 接入

适用场景

可修改原有域名解析服务商,将域名解析托管至 EdgeOne。

当前域名已托管在其他域名解析服务商处(例如:腾讯云DNSPod),不希望更改原有解析服务商。

接入方式

只需要去原域名解析服务商修改一次 DNS 服务器,托管域名解析后可针对域名一键开启安全加速。

每次新增子域名并开启加速时,都需要去相应的 DNS 解析服务商添加一次 CNAME 记录。

验证方式

需修改原有 NS 服务器至 EdgeOne 指定的地址。

通过添加 DNS 记录或者文本验证的方式验证主域名归属权。

调度方式

域名开启加速后,可通过 A 记录直接指向最近的 EdgeOne 边缘节点。

域名开启加速后,需通过 Cname 调度至最近的 EdgeOne 边缘节点。

我这里使用CNAME

点击域名管理、域名配置可以进行切换

img
img

添加域名

域名配置指引

@ 直接将主域名 yby6.com 接入

www 将子域名 www.yby6.com 接入

test 将子域名 test.yby6.com 接入

  • 将泛域名 *.yby6.com 接入
img
img

推荐配置我使用网站加速

img
img

进行配置CNAME

img
img

进入域名DNS云解析

将主机记录信息替换为EdgeOne

img
img
img
img

配置完成后将是部署中

img
img

DDOS的防御

img
img

我们已经部署成功了

接下来访问一下 我滴妈 咋变成不安全了啊!!!!

原来是EdgeOne没配置Https协议导致的那么我们就申请一个呗

img
img

同学们就根据这个来一步步的就ok啦,我将不带大家进行了

img
img

直接申请免费的会自动进行部署的

img
img

部署成功!

img
img

测试一下我们的加速

站点接入前,您可以通过打开浏览器,单击 F12 查看开发者工具,之后输入该站点的服务器地址

比如: 直接浏览器输入 127.0.0.1 你自己对应的服务器IP

可以看到我的第一次我是ip直接访问 好慢呀!

img
img

第二次测试使用我们配置好的加速域名 yby6.com 可以看到非常的快啊! 缩短到564毫秒啦~

img
img

使用Safari浏览器测试结果

img
img

感谢腾讯云给我抵抗那些DDOS人的勇气呜呜呜呜~

边缘云函数

部署代码

img
img

进行新增策略

img
img

我这里直接使用文件名称来作为策略

它还可以有 HOST、URL PATH、URL Full、文件后缀、文件名称、以及全站请求

img
img

哈哈哈哈哈!!!太强了啊!

img
img

图片自适应缩放

img
img

该示例通过获取请求头中的 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 来匹配后缀图片

img
img

通过边缘函数实现自适应图片格式转换

创建函数

代码语言: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 同时符合以上条件时,将触发以上的边缘函数,对图片进行自动处理。

img
img

验证边缘函数的生效情况

谷歌浏览器

代码语言: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。
img
img

EdgeOne使用的体验&心得

经过这次的EdgeOne体验感觉它的功能很强大我还有很多功能都没有去玩、他有规则引擎、安全防护、边缘函数、测试工具、诊断工具等等都可以去玩玩看

我感觉他的性能优势很强大EdgeOne利用分布在全球各地的边缘节点,可以加速内容传递和响应时间,提供更好的性能。这对于需要低延迟和高带宽的应用程序非常重要。

他的安全性边缘计算在于更加靠近终端用户,因此有助于减少潜在的网络攻击。EdgeOne提供了多种安全功能,包括DDoS和Web防护,可以帮助保护应用程序免受网络威胁的影响。灵活性可通过边缘函数EdgeOne使开发人员能够在边缘节点上运行自定义代码,这为构建灵活的边缘应用程序提供了机会.

输入图片说明
输入图片说明

最后

本期结束咱们下次再见👋~

🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

![输入

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 边缘安全加速产品都具有哪些安全能力?
  • EdgeOne的接入
    • 进入EdgeOne产品页面进行添加站点
      • 需要进行购买套餐
      • 购买完毕可以看到我们的控制台变化了
      • 验证我们的域名归属权
      • 回到站点列表可以看到我们的站点套餐是个人版本
      • 添加域名
      • 进行配置CNAME
      • 进入域名DNS云解析
  • 选择加速区域和接入模式,完成站点接入
  • 推荐配置我使用网站加速
    • DDOS的防御
      • 我们已经部署成功了
        • 测试一下我们的加速
        • 边缘云函数
          • 部署代码
            • 进行新增策略
              • 图片自适应缩放
                • 使用URL Path 来匹配后缀图片
            • 通过边缘函数实现自适应图片格式转换
              • 验证边缘函数的生效情况
                • 谷歌浏览器
                • Safari浏览器
            • EdgeOne使用的体验&心得
            • 最后
            相关产品与服务
            安全加速 SCDN
            安全加速(Secure Content Delivery Network,SCDN)是腾讯云推出的集分布式 DDoS 防护、CC 防护、WAF 防护、BOT 行为分析为一体的安全加速解决方案。已使用内容分发网络(CDN)或全站加速网络(ECDN)的用户,购买服务后可为加速域名一键开启安全防护相关配置,全方位保障业务内容分发。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档