能否使用 Nginx 实现智能限速? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
villivateur
1.56D
V2EX    NGINX

能否使用 Nginx 实现智能限速?

  •  
  •   villivateur 2022-01-10 14:03:14 +08:00 3562 次点击
    这是一个创建于 1372 天前的主题,其中的信息可能已经有所发展或是发生改变。

    迫于国内云服务器带宽都很鸡肋,就算自用也会瞬间跑满。

    比如我的服务器带宽是 10M ,我从这台机器下载一个大文件的时候,会把带宽跑满,然后部署在这个服务器上的其他站点也会很慢甚至打不开。

    能否用 Nginx 实现这样的功能:当只有一个连接的时候,会把带宽全部分配给它,有多个连接的时候,带宽平均分配,这样,两个客户端同时下载的时候,就不会导致其中一个没速度了。

    当然,解决方案不限于 Nginx ,如果有更好的策略也行。

    12 条回复    2022-01-12 00:14:11 +08:00
    Inf1nity
        1
    Inf1nity  
       2022-01-10 14:52:57 +08:00   1
    villivateur
        2
    villivateur  
    OP
       2022-01-10 15:32:47 +08:00 via Android
    @Inf1nity 感谢回复,但这样的话,只是单纯的限速,而不能在带宽充足的时候跑满
    Inf1nity
        3
    Inf1nity  
       2022-01-10 15:50:39 +08:00
    @villivateur 我觉得你的需求可以通过每个站点使用一个虚拟网卡,然后虚拟网卡之间做负载均衡来实现。但是我觉得这样实现起来有点困难,不知道在不入侵程序代码的情况下,是否还有其他现成的,更好的方案。
    defunct9
        4
    defunct9  
       2022-01-10 15:55:10 +08:00
    写个 lua 也许能实现
    0ZXYDDu796nVCFxq
        5
    0ZXYDDu796nVCFxq  
       2022-01-10 16:00:25 +08:00 via Android
    把文件迁移到对象存储套个 CDN 吧
    10M 带宽就别腾挪了
    iqoo
        6
    iqoo  
       2022-01-10 16:16:35 +08:00
    降低运维端口的优先级,设置一个最小带宽(例如用 tc 流控)。事实上除了网络,CPU 也可以这样玩。CPU 使用率低的话 brotli 使用最高压缩率,负载高的时候降低压缩率。
    eason1874
        7
    eason1874  
       2022-01-10 16:39:06 +08:00
    ngx_lua 模块可以做到,写过类似的

    njs 估计也行,没写过
    luojiyin87
        8
    luojiyin87  
       2022-01-10 21:51:59 +08:00
    nginx-php 可以
    lyhiving
        9
    lyhiving  
       2022-01-11 01:21:30 +08:00 via Android
    前后端分离,附件交给 CDN
    learningman
        10
    learningman  
       2022-01-11 01:33:53 +08:00
    @iqoo #5 能说一下 brotli 这个动态压缩率是怎么实现的吗
    iqoo
        11
    iqoo  
       2022-01-11 20:11:18 +08:00
    @learningman 反向代理 nodejs 程序实现的,根据 CPU 使用率调整压缩率。当然只是概念验证而已,实际并没有应用,因为我的站点基本都是静态资源,可以预先 br 最高等级压缩。
    HeartJ
        12
    HeartJ  
       2022-01-12 00:14:11 +08:00
    可以尝试用 tc 对端口进行限速
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5578 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 07:20 PVG 15:20 LAX 00:20 JFK 03:20
    Do have faith in what you're doing.
    ubao 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