PHP 如何应对较高并发, 1 秒钟 3000-5000 次 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tianxiacangshen
V2EX    PHP

PHP 如何应对较高并发, 1 秒钟 3000-5000 次

  •  
  •   tianxiacangshen 2017-07-13 16:11:20 +08:00 6008 次点击
    这是一个创建于 3070 天前的主题,其中的信息可能已经有所发展或是发生改变。
    流量不是很多,每天 12000 ip 32000pv,但是这几天有些坏人一直在发动并发访问,对方找到网站上的所有 post 之后,利用几个 ip 不断访问 post 页面,一秒钟 3000-5000 次,添加了验证码,但是验证码好像失效了,这样没达到攻击级别,但是却让 cpu 长期 100%,导致网站很卡。

    这种情况怎么办?
    29 条回复    2017-07-14 21:06:25 +08:00
    xiaowu365
        1
    xiaowu365  
       2017-07-13 16:12:19 +08:00
    百度云加速
    tianxiacangshen
        2
    tianxiacangshen  
    OP
       2017-07-13 16:15:26 +08:00
    @xiaowu365 是英文站,用了 cloudflare 的 pro 版,
    alex321
        3
    alex321  
       2017-07-13 16:18:26 +08:00
    Nginx 负载均衡下。。。自动脚本分析每秒超过 5 次 post 的 IP 添加到 Nginx 的 black list。
    sydra
        4
    sydra  
       2017-07-13 16:18:30 +08:00
    全局增加一个根据 ip 的访问时间间隔限制不就好了.
    hosea
        5
    hosea  
       2017-07-13 16:20:13 +08:00
    属于被攻击防御范畴的问题了吧。。建议先封 ip。。然后配置 server 层面的访问拦截
    nullen
        6
    nullen  
       2017-07-13 16:33:31 +08:00
    nginx 有 rate limit 模块,可以试试看先?
    andrewDDC
        7
    andrewDDC  
       2017-07-13 16:34:49 +08:00
    nginx +lua + iptable 设置一下规则,超过的直接 drop 掉
    yghack
        8
    yghack  
       2017-07-13 16:39:02 +08:00
    waf
    wwek
        9
    wwek  
       2017-07-13 16:48:45 +08:00
    继续挂在 cloudflare 下
    自己用 nginx +lua 做二次清洗
    we3613040
        10
    we3613040  
       2017-07-13 16:55:05 +08:00
    按照 ip 做限制,对方换代理也需要成本的
    wujunze
        11
    wujunze  
       2017-07-13 16:58:23 +08:00
    这个属于被 CC 了 用 Nginx 限制一下
    yylzcom
        12
    yylzcom  
       2017-07-13 17:03:13 +08:00
    之前遇到过
    nginx+fail2ban 禁用 ip24 小时
    windfarer
        13
    windfarer  
       2017-07-13 17:03:49 +08:00
    打回去。。
    towser
        14
    towser  
       2017-07-13 17:10:34 +08:00
    去搜防 CC 脚本,一抓一大把 ,调试好了后台跑在服务器上,其他什么都不用管。
    lan894734188
        15
    lan894734188  
       2017-07-13 18:48:05 +08:00 via Android
    redis cache 静态化 php7
    jellybool
        16
    jellybool  
       2017-07-13 19:34:59 +08:00 via iPhone
    这种情况跟我之前遇到的好像....nginx + lua 可以的,基本就是分析特征,匹配(不管是 ip 或者 agent 或者 header ),然后处理掉就好……
    cst4you
        17
    cst4you  
       2017-07-13 19:37:29 +08:00
    cc 还是好防的, 针对对方攻击的方式做限制就好
    a570295535
        18
    a570295535  
       2017-07-13 19:46:29 +08:00
    虽然我不懂啥技术,但是我的评论框提交评论后会有 15 秒的等待时间,
    还有就是对页面刷新时间进行限制,这样清净不少。。。
    ddou
        19
    ddou  
       2017-07-13 21:26:20 +08:00 via iPhone
    oldgun
        20
    oldgun  
       2017-07-13 21:52:06 +08:00
    干掉就好
    GG668v26Fd55CP5W
        21
    GG668v26Fd55CP5W  
       2017-07-13 22:09:47 +08:00 via iPhone
    @a570295535 这种前端的限制只能防君子防不了小人……
    xiaoz
        22
    xiaoz  
       2017-07-14 08:09:01 +08:00 via iPhone
    @yylzcom 我之前用 ng+f2 对 http 有效,对 https 的网站无效,有遇到过吗?
    yylzcom
        23
    yylzcom  
       2017-07-14 08:14:22 +08:00
    @xiaoz #22 我只做了 http 的,原理是自建 fail2ban 的 filter 来读取 nginx 的日志,建议要从 nginx 的日志入手看看吧。如果确定 fail2ban 的 filter 能对应到 nginx 日志里的条目但是无效,那就是玄学了……
    glouhao
        24
    glouhao  
       2017-07-14 08:26:09 +08:00 via Android
    @falcon05 都是小人吧,能防笨小人就是了
    Betacoefficient
        25
    Betacoefficient  
       2017-07-14 08:33:33 +08:00
    @glouhao 你说的对,有些人就是这样坏。
    msg7086
        26
    msg7086  
       2017-07-14 08:40:57 +08:00
    rate limit 配合 fail2ban 真的够用了。
    xiaoz
        27
    xiaoz  
       2017-07-14 08:47:23 +08:00
    @yylzcom 我看 f2 的日志中是匹配出了 IP 的,但是未对 IP 屏蔽。
    yylzcom
        28
    yylzcom  
       2017-07-14 08:50:03 +08:00
    @xiaoz #27 检查你的 fail2ban 的自定义 filter 里的 action 等号后面
    [iptables[name=xxx, port=http, protocol=tcp]
    看看修改 port 为 https 试试看?
    leekafai
        29
    leekafai  
       2017-07-14 21:06:25 +08:00 via Android
    web server 直接斩 ip 吧,增大 d 站成本说不定别人觉得没好处就收了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2907 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 13:23 PVG 21:23 LAX 05:23 JFK 08:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86