本帖最后由 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中设置负载均衡,实现不同地区访问不同节点.

请教大佬上面的方式是否可行或是有理解错误的地方?
是否有更好的方式和改动?

搞的太复杂了使用cf的worker实现被攻击后自动切换节点的问题
没攻击:要速度优先选HK机器,;
被攻击:备用机OVH就算知道IP也D不死,在OVH上套个CF;
做好MYSQL主从和网站Rsync同步,用DNSPOD做宕机切换,一般5分钟内就可以切换到备用机,当攻击停止又可以自动切换回HK。 本帖最后由 370 于 2020-2-5 14:34 编辑

lonefly 发表于 2020-2-5 14:27
搞的太复杂了
没攻击:要速度优先选HK机器,;
被攻击:备用机OVH就算知道IP也D不死,在OVH上套个CF …

明白大佬的意思,关键线路好的小鸡配置高比较贵.现在站点就放在小鸡上.跑起来配置已经不够了.
只是用作反代的话就不要那么高配置了,mysql和php这些都不用装.只要线路好就行.
成本也更低. @suantong
@ttydy
@openos
求指点 访问量大的话你要担心的不是配置问题,是带宽使用cf的worker实现被攻击后自动切换节点的问题

lonefly 发表于 2020-2-5 14:38
访问量大的话你要担心的不是配置问题,是带宽

带宽,内存.硬盘IO的负载都非常小.
只是cpu经常负载高.经常502.
再说使用dns切换的速度的确优点慢.
使用cf的worker实现被攻击后自动切换节点的问题 用cf-worker的话 用户请求似乎都会先到cf 速度快的小鸡就失去优势了 本帖最后由 370 于 2020-2-5 14:59 编辑

wweng 发表于 2020-2-5 14:51
用cf-worker的话 用户请求似乎都会先到cf 速度快的小鸡就失去优势了

去程的话应该不要紧吧.
现在不少小鸡也是去程163.回程gia.效果还可以.

370 发表于 2020-2-5 14:54
去程的话应该不要紧吧.
现在不少小鸡也是去程163.回程gia.效果还可以.

用户 <———> cf worker <———> 反代小鸡
用户端来回都是cf,gia也没用啊

wweng 发表于 2020-2-5 15:07
用户  cf worker  反代小鸡
用户端来回都是cf,gia也没用啊

大佬,是我理解错了吗?
看了下
https://www.codiva.io/blog/post/custom-load-balancing-with-cloudflare-worker/
应该是直接发送请求到反代小鸡,然后由小鸡返回?好热源码网www.haore.net