Citrix ADC

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

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

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

通过使用命令行接口限制每个用户或客户端设备的带宽消耗

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

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

    >添加lb vserver mysitevip HTTP 192.0.2.17 80完成后,添加service service[1-10] 192.0.2。[240-249] HTTP 80服务"service1"添加服务"service2"添加服务"service3"添加…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地址的流选择器。

      >添加流选择器myselector CLIENT.IP.SRC——NeedCopy >
    • 要根据提供用户名的请求头的值限制每个用户的带宽消耗,请配置标识该头的流选择器。在下面的示例中,报头的名称为UserHeader。

      >添加流选择器myselector HTTP.REQ.HEADER(" UserHeader ")完成
  3. 配置流标识符。配置使用流选择器的流标识符。将interval参数设置为60分钟。

    >添加流标识符myidentifier myselector -interval 60 -sampleCount 1 -sort BANDWIDTH Done 
  4. 配置响应器动作。导入要发送给超过带宽消耗限制的用户或客户端的HTML页面,然后在响应器操作crossed_limits中使用该页面。

    > import responder htmlpage http://.1.1.1/stdpages/wait.html crossing -limits.html该操作可能需要一些时间,请耐心等待…完成>添加响应器动作crossed_limits respondwithhtmlpage cross -limits.html完成
  5. 配置响应器策略。使用规则ANALYTICS.STREAM(" myidentifier ")配置响应器策略myrespol1。COLLECT_STATS和NOOP动作。然后,配置策略myrespol2,以确定客户端或用户是否超过了100mb限制。策略myrespol2配置了响应器动作crossed_limits。

    >添加响应策略myrespol1 'ANALYTICS.STREAM("myidentifier")。COLLECT_STATS' NOOP完成>添加响应器策略myrespol2 'ANALYTICS.STREAM("myidentifier").BANDWIDTH.GT(104857600)' crossed_limits完成
  6. 将响应器策略绑定到负载均衡虚拟服务器。只收集统计数据的策略myrespol1必须具有更高的优先级和NEXT的GOTO表达式。

    > bind lb vserver mysitevip -policyName myrespol1 -priority 1 -gotoPriorityExpression NEXT完成> bind lb vserver mysitevip -policyName myrespol2 -priority 2 -gotoPriorityExpression END完成
  7. 测试配置。通过向负载均衡虚拟服务器发送多个客户端或用户的测试HTTP请求,使用stat stream identifier命令查看针对指定标识的统计信息,对配置进行测试。下面的输出显示了客户端的统计信息。

    > 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 00 192.0.2.32 00 Done > 
如何限制每个用户或客户端设备的带宽消耗

在本文中