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
    • 要根据提供用户名的请求标头的值限制每个用户的带宽消耗,请配置标识标头的流选择器。在以下示例中,标头的名称是用户头。

      > 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 页面,然后在响应程序操作 crossed_limit 中使用该页面。

    > 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 配置了响应程序操作交叉限制。

    > 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 流标识符命令查看为指定标识符收集的统计信息来测试配置。以下输出显示客户端的统计信息。

    > 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 不承担任何责任。
如何限制每个用户或客户端设备的带宽消耗