Nginx 能不能实现按域名限制网速? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
waringid
V2EX    NGINX

Nginx 能不能实现按域名限制网速?

  •  
  •   waringid 339 天前 2556 次点击
    这是一个创建于 339 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Nginx 对外映射 80 和 443 端口,Nginx 对应的宽带线路是 100M (上下行对等),通过反向代理配置域名( hostname )的方式映射到后端服务器。类似于:
    a.example.com -> 192.168.1.10:3000
    b.example.com -> 192.168.2.10:8900

    想要实现的效果:
    a.example.com 限制访问带宽为 2M (外网访问,不限制访问 192.168.1.10 )
    b.example.com 限制访问带宽为 3M (外网访问)
    其它的域名不限制

    尝试过的方案:
    1 、防火墙或网关限制(只能基于 IP 限制,而且不灵活)
    2 、Nginx 自带的访问频率和访问速率控制 (有一定效果,不够灵活并且如果是已建立的连接,限制带宽操作不生效,需要断开本次连接,重新再连时才生效)

    各位大佬有没有更灵活的实现方案推荐?
    11 条回复    2024-11-06 15:55:53 +08:00
    i4t
        1
    i4t  
       339 天前
    上思科,3 层交换,可以设置限速,Nginx 基本上做不到精确限速
    waringid
        2
    waringid  
    OP
       339 天前
    @i4t 我是需要对访问 a.example.com 这样的客户端源 IP 限速(有 2 个限定条件:1 是访问域名 a.example.com 的这个客户端 IP ,2 是判断如果是访问这个域名就对这个客户的外网 IP 进行限速),3 层交换更多是对内网 IP
    stefanaka
        3
    stefanaka  
       339 天前
    去 nginx 上提个 issue 试试
    keepfun
        4
    keepfun  
       339 天前
    上 openresty 看有啥插件可用的
    waringid
        5
    waringid  
    OP
       339 天前
    @fenglangjuxu 用过 openresty 的一些插件,也没有匹配到合适的。特别是针对云盘下载已建立连接的这种无法按要求限制网速。我在想是不是 Nginx 是 7 层应用,而针对网络限速的是四层的原因,所以无法做到有效的限制。

    按这个理解有没有可以通过 Nginx 和 防火墙(或网关)联动的配置案例?
    keepfun
        6
    keepfun  
       339 天前
    能改配置 一个连接的时间超时变短么 强制重开链接 这样就算超了 时间很短
    waringid
        7
    waringid  
    OP
       338 天前
    @fenglangjuxu 基于 Nginx 这类的 HTTP 协议不行,在原理上它无法对已经建立连接的链路重置(如果是服务端主动发起重置请求则需要更改后端应用,这个就不具备普适性)
    wheat0r
        8
    wheat0r  
       338 天前
    前置国产下一代防火墙之类的设备,一般都有很复杂的限速功能
    waringid
        9
    waringid  
    OP
       338 天前
    @wheat0r 主要是想了解有没有实现这样需求的成功案例。和防火墙联动肯定是可以实现这样的特性,但是怎么样配置对接?有哪些坑和难点?需要有清晰的认知
    cnoder
        10
    cnoder  
       338 天前
    waringid
        11
    waringid  
    OP
       337 天前
    @cnoder 这个是最早尝试的方法,达不到要求有 2 个原因:
    1 、默认无法基于被访问的域名判断(当然可以通过 openresty lua 代码读取 $host 和 X-Real-IP ,但如果配置的二级域名较多或者是经常变化就很难动态调整)
    2 、最大的问题是已经建立的连接无法实现网速的限制(频率控制也不够平缓,有延迟并且突发的峰值对整体网络有影响)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5394 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 19ms UTC 06:43 PVG 14:43 LAX 23:43 JFK 02:43
    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