CDN&OSS大流量熔断解决方法

CDN&OSS大流量事件惨不忍睹
为了让大家解除恐慌对大流量自动溶断提出解决方案!

解决方案


原理

阿里没有流量阀的功能
但是有大流量自动报警功能
报警还能自动回调一个URL
那么,我们写一个PHP结合阿里的SDK写一个控制权限的API就可以了。
说白了就是当别人攻击就会自动关闭CDN&/OSS的 自动访问权限!
直接用API把CDN/OSS域名解析到127.0.0.1

CDN/OSS控制API



下载后直接放到服务器就行了!

使用方法


创建一个RAM子用户

  1. 打开RAM控制台右下角快捷入口
  2. 快捷入口->创建用户:访问方式选 编程访问 , 显示名称 自己记住,其他随便填,点确定,记住给的 accessKeyId 、 accessKeySecret 。
    3.快捷入口->创建自定义策略:配置方式选 脚本配置 ,策略内容填下面的JSON,其他随便填。
{
"Statement": [{
    "Action": [
        "cdn:StopCdnDomain",
        "oss:PutBucketACL"
    ],
    "Effect": "Allow",
    "Resource": "*"
}],
"Version": "1"

}
4.快捷入口->添加权限:被授权主体填步骤2里的显示名称然后点搜索框下面的候选项键入,权限选择自定义策略,步骤3创建的策略会显示在下面点一下它,点确定。

配置API
1.下载CDN&OSS停用API到自己服务器。
2.把API中的 配置项 改成自己的信息。

创建CDN&OSS报警规则
1.打开云端控制台
*2.云监控控制台->看左侧边栏->云服务监控->CDN->左侧边栏上部往右看->报警规则->往右看->创建报警规则(蓝色):关联资源自选,报警规则选下行流量-1分钟-持续一个周期-总计>= x Mbytes x∈(0,+∞),最后的报警回调填你API地址!important类如:

http://*/CDNClose.php

注意


1.OSS文件权限要跟随BUCKET。
2.触发保护后BUCKET权限变成私有。
3.觉得别人不打你了,就去手动设置BUCKET权限为公共读就可以了。。
4.测试API可以把URL放到浏览器地址栏访问,看到OK说明API配置正确。
5.CDN触发报警后也是停用,觉得可以打开的时候再去CDN控制台点一下启用就OK。
6.其他问题丢到评论区。
7.API只适用阿里云,思路通用!

此篇文章并非原创!本人已征得原创作者同意!原创作者:鸿 博客站点:https://b.nit9.cn/

Last modification:July 29th, 2020 at 12:40 pm
如果觉得我的文章对你有用,请随意赞赏