370 大佬有话说 :
使用cf的worker实现被攻击后自动切换节点的问题
本帖最后由 370 于 2020-2-5 14:20 编辑
一.需求
服务器没被攻击之前能够使用优质线路提高国内访问速度
服务器被攻击之后能迅速切换到高防节点继续提供服务
攻击停止之后立刻切换回优质线路
二.一个实现方法
小鸡被攻击前,
用户 <———> 反代小鸡 <———> cf <———> 后端服务器
小鸡被攻击后
用户 <———> cf(开启验证码与自动ip屏蔽) <———> 后端服务器
设置方法
额外服务器运行定时脚本检测小鸡http返回代码,根据返回值来判断小鸡状态.
小鸡攻击开始:使用cf的api脚本切换cname到cf,并开启cf的验证码.后端服务器运行另外一个脚本检测自己负载,达到后使用cf脚本自动在cf中添加恶意ip.
小鸡攻击停止:使用cf的api脚本切换cname到小鸡.关闭cf验证码.
缺点
需要额外的一台小鸡运行检测脚本
使用dns切换过慢.考虑到脚本检测频率,即使设置TTL为2min,被攻击后切换依然很慢.
三.使用worker的实现方法
小鸡被攻击前,
用户 <———> cf worker <———> 反代小鸡<———> cf <———> 后端服务器
小鸡被攻击后
用户 <———> cf worker <———> cf(开启验证码与自动ip屏蔽) <———> 后端服务器
设置方法
cf worker中检测小鸡状态
小鸡攻击开始:使用worker切换访问节点为cf,并开启cf的验证码.后端服务器运行另外一个脚本检测自己负载,达到后使用cf脚本自动在cf中添加恶意ip.
小鸡攻击停止:使用worker切换访问节点到小鸡.关闭cf验证码.
优点
不在需要额外的服务器运行检测脚本.
被攻击后worker的切换效率几乎是立即,比DNS方式生效快.
可以添加在worker中设置负载均衡,实现不同地区访问不同节点.
请教大佬上面的方式是否可行或是有理解错误的地方?
是否有更好的方式和改动?
lonefly 大佬有话说 :
搞的太复杂了yc022t
没攻击:要速度优先选HK机器,;
被攻击:备用机OVH就算知道IP也D不死,在OVH上套个CF;
做好MYSQL主从和网站Rsync同步,用DNSPOD做宕机切换,一般5分钟内就可以切换到备用机,当攻击停止又可以自动切换回HK。
370 大佬有话说 :
本帖最后由 370 于 2020-2-5 14:34 编辑
lonefly 大佬有话说 : 2020-2-5 14:27
搞的太复杂了
没攻击:要速度优先选HK机器,;
被攻击:备用机OVH就算知道IP也D不死,在OVH上套个CF …
明白大佬的意思,关键线路好的小鸡配置高比较贵.现在站点就放在小鸡上.跑起来配置已经不够了.
只是用作反代的话就不要那么高配置了,mysql和php这些都不用装.只要线路好就行.
成本也更低.
370 大佬有话说 :
@suantong
@ttydy
@openos
求指点