ADC
感谢您提供反馈

这篇文章已经过机器翻译.放弃

如何限制每个用户或客户端设备的带宽消耗

您的网站、应用程序或文件托管服务可用的网络和服务器资源有限,无法为其所有用户提供服务。最重要的资源之一是带宽。只有一部分用户群消耗大量带宽会导致网络拥塞,降低其他用户的资源可用性。为防止网络拥塞,您可能需要使用临时拒绝服务技术来限制客户端的带宽消耗,例如,如果客户端请求在请求之前的固定时间段内超过了预先配置的带宽值,则使用 HTML 页面响应客户端请求。

通常,您可以调节每台客户端设备或每个用户的带宽消耗。此用例演示了如何在一小时内将每个客户端的带宽消耗限制在 100 MB 以内。该用例还演示了如何使用提供用户名的自定义标头,将每位用户的带宽消耗量在一小时内调整为 100 MB。在这两种情况下,通过将流标识符中的间隔参数设置为 60 分钟,可以跟踪一小时移动时间段内的带宽消耗。这些用例还演示了如何导入 HTML 页面以发送给已超过限制的客户端。在这些用例中,导入 HTML 页面不仅可以简化响应者操作的配置,还可以简化所有需要相同响应的响应者操作的配置。

使用命令行界面限制每个用户或客户端设备的带宽消耗

在命令行界面中,执行以下任务以配置操作分析,以限制客户端或用户的带宽消耗。每个步骤都包括示例命令及其输出。

  1. 设置您的负载平衡配置。配置负载平衡虚拟服务器 mysitevip,然后配置所需的所有服务。将服务绑定到虚拟服务器。以下示例创建了十个服务并将这些服务绑定到 mysitevip。

    > add lb vserver mysitevip HTTP 192.0.2.17 80 Done > add service service[1-10] 192.0.2.[240-249] HTTP 80 service "service1" added service "service2" added service "service3" added . . . service "service10" added Done > bind lb vserver vserver1 service[1-10] service "service1" bound service "service2" bound service "service3" bound . . . service "service10" bound Done
  2. 配置流选择器。配置以下直播选择器之一:

    • 要限制每台客户机的带宽消耗,请配置用于标识客户端 IP 地址的流选择器。

      > add stream selector myselector CLIENT.IP.SRC Done
    • 要根据提供用户名的请求标头的值限制每个用户的带宽消耗,请配置用于标识标头的流选择器。在以下示例中,标头的名称为 UserHeader。

      > add stream selector myselector HTTP.REQ.HEADER(“UserHeader”) Done
  3. 配置流标识符。配置使用直播选择器的直播标识符。将间隔参数设置为 60 分钟。

    > add stream identifier myidentifier myselector -interval 60 -sampleCount 1 -sort BANDWIDTH Done
  4. 配置响应程序操作。导入要发送给已超过带宽消耗限制的用户或客户端的 HTML 页面,然后在 responder action crossed_limits 中使用该页面。

    > import responder htmlpage http://.1.1.1/stdpages/wait.html crossed-limits.html This operation may take some time, Please wait... Done > add responder action crossed_limits respondwithhtmlpage crossed-limits.html Done
  5. 配置响应程序策略。配置响应程序策略 myrespol1 与规则 ANALYTICS.STREAM(“myidentifier”).COLLECT_STATS 和操作 NOOP。然后,配置策略 myrespol2 以确定客户端或用户是否已超过 100 MB 的限制。策略 myrespol2 配置了响应者操作 crossed_limits。

    > add responder policy myrespol1 'ANALYTICS.STREAM("myidentifier").COLLECT_STATS' NOOP Done > add responder policy myrespol2 'ANALYTICS.STREAM("myidentifier").BANDWIDTH.GT(104857600)' crossed_limits Done
  6. 将响应者策略绑定到负载平衡虚拟服务器。策略 myrespol1 仅收集统计数据,其优先级必须更高,GOTO 表达式必须为 NEXT。

    > bind lb vserver mysitevip -policyName myrespol1 -priority 1 -gotoPriorityExpression NEXT Done > bind lb vserver mysitevip -policyName myrespol2 -priority 2 -gotoPriorityExpression END Done
  7. 测试配置。通过向负载平衡虚拟服务器发送来自多个客户端或用户的测试 HTTP 请求来测试配置,然后使用 stat stream 标识符命令查看为指定标识符收集的统计信息。以下输出显示客户端的统计信息。

    > stat stream identifier myidentifier -sortBy BandW –fullValues Stream Session statistics Req BandW 192.0.2.30 5000 3761 192.0.2.31 29 2602 192.0.2.32 25 51 RspTime Conn 192.0.2.30 2 0 192.0.2.31 0 0 192.0.2.32 0 0 Done >
本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
如何限制每个用户或客户端设备的带宽消耗