ADC

内容交换

在当今复杂的 Web 站点中,您可能希望向不同的用户呈现不同的内容。例如,您可能希望允许客户或合作伙伴的 IP 范围内的用户访问特殊 Web 门户。您可能希望向该区域的用户展示与特定地理区域相关的内容。您可能希望以不同的语言向这些语言的使用者展示内容。您可能希望向使用这些设备的用户展示针对特定设备(例如智能手机)量身定制的内容。NetScaler 内容交换功能使设备能够根据您要向这些用户呈现的特定内容在多个服务器上分发客户端请求。

要配置内容交换,请先创建基本内容交换设置,然后对其进行自定义以满足您的需求。这需要启用内容交换功能、为托管正在交换的内容的每个版本的服务器设置负载平衡、创建内容交换虚拟服务器、创建策略以选择将哪些请求定向到哪个负载平衡虚拟服务器,以及将策略绑定到内容交换虚拟服务器。然后,可以通过以下方法自定义设置以满足您的需求:设置策略的优先级、通过配置备份虚拟服务器来保护您的设置以及通过将请求重定向到缓存来提高设置的性能。

内容交换的工作原理

内容交换使得 NetScaler 设备能够将发送到同一 Web 主机的请求定向到具有不同内容的不同服务器。例如,可以将设备配置为将动态内容(例如后缀为 .asp、.dll 或 .exe 的 URL)的请求定向到一台服务器,将静态内容的请求定向到另一台服务器。可以将设备配置为基于 TCP/IP 标头和有效负载执行内容交换。

还可以使用内容交换将设备配置为根据各种客户端属性将请求重定向到具有不同内容的不同服务器。其中一些客户端属性如下:

  • Device Type(设备类型)。设备会检查客户端请求中的用户代理或自定义 HTTP 标头,以了解发起请求的设备类型。根据设备类型,它将请求定向到特定的 Web 服务器。例如,如果请求来自手机,则会将该请求定向到能够提供用户可在其手机上查看的内容的服务器。来自计算机的请求将定向到能够提供为计算机屏幕设计的内容的其他服务器。
  • Language(语言)。设备会检查客户端请求中的 Accept-Language HTTP 标头,并确定客户端浏览器使用的语言。然后,设备将请求发送到以该语言提供内容的服务器。例如,使用基于语言的内容交换,设备可以将浏览器配置为请求法语内容的用户发送到具有法语版报纸的服务器。它可以将浏览器配置为请求英语内容的其他用户发送到英文版服务器。
  • cookie。设备会检查 HTTP 请求标头是否存在服务器之前设置的 cookie。如果找到该 cookie,则会将请求定向到托管自定义内容的相应服务器。例如,如果发现表明客户是客户忠诚度计划成员的 cookie,请求将定向到速度更快的服务器或具有特殊内容的服务器。如果未找到该 cookie,或者该 cookie 表明用户不是会员,请求将发送到服务器,供公众使用。
  • HTTP 方法。设备会检查 HTTP 标头中使用的方法,然后将客户端请求发送到正确的服务器。例如,GET 图像请求可以定向到图像服务器,而 POST 请求可以定向到处理动态内容的速度更快的服务器。
  • 第 3/4 层数据。设备会检查对源或目标 IP、源端口或目标端口或者 TCP 或 UDP 标头中存在的任何其他信息的请求,并将客户端请求定向到正确的服务器。例如,来自属于客户的源 IP 的请求可以定向到速度更快的服务器上的自定义门户或具有特殊内容的服务器上的自定义门户。

典型的内容交换部署由下图中所示的实体组成。

图 1. 内容交换体系结构

内容交换体系结构

内容交换配置包括内容交换虚拟服务器、负载平衡设置(包括负载平衡服务器和服务)以及内容交换策略。要配置内容交换,您必须配置内容交换虚拟服务器,并将其与策略关联并平衡虚拟服务器的负载。此过程将创建一个内容组—由特定内容交换配置中涉及的所有虚拟服务器和策略组成的组。

内容交换可与 HTTP、HTTPS、TCP 和 UDP 连接一起使用。对于 HTTPS,您必须启用 SSL 卸载。

请求到达内容交换虚拟服务器时,该虚拟服务器将关联的内容交换策略应用于该请求。策略的优先级定义绑定到内容交换虚拟服务器的策略的评估顺序。如果使用“Advanced policy”(高级策略)策略,则将策略绑定到内容交换虚拟服务器时,必须为该策略分配优先级。如果您使用的是 NetScaler 经典策略,则可以为策略分配优先级,但无需这样做。如果分配优先级,则将按照您设置的顺序评估策略。如果您不这样做,NetScaler 设备将按照策略的创建顺序评估您的策略。

除了配置策略优先级外,还可以使用 Goto 表达式和策略库调用来操纵策略评估的顺序。有关高级策略配置的更多详细信息,请参阅 配置高级策略策略

评估策略后,内容交换虚拟服务器会将请求路由到相应的负载平衡虚拟服务器,然后将其发送到相应的服务。

内容交换虚拟服务器只能向其他虚拟服务器发送请求。如果您使用的是外部负载平衡器,则必须为其创建负载平衡虚拟服务器,并将其虚拟服务器作为服务绑定到内容交换虚拟服务器。

内容交换