对于负载均衡 AirWatch Cloud Messaging (AWCM),要求根据 Cookie、URI 或 HTTP 标头中存在的 awcmsessionid 保持连接。

可以使用以下方法实现连接持久性:

  • 一致哈希。

  • 使用 DataScript 维护持久性表。

创建自定义运行状况监控器

按照 Workspace ONE UEM 管理控制台内创建自定义运行状况监控器部分中所述的相同导航步骤进行操作。提供 AWCM 请求数据(根据需要提供标头和正文),然后单击保存

创建池

按照 Workspace ONE UEM 管理控制台内创建池部分中所述的相同导航步骤进行操作。

例如,由于 AWCM 需要基于 URI标头中的 awcmsessionid 参数保持持久性,因此可以使用基于自定义字符串的一致哈希。在以下步骤中使用 DataScript 定义自定义字符串。

创建应用程序配置文件

按照 Workspace ONE UEM 管理控制台内创建应用程序配置文件部分中所述的相同导航步骤进行操作。

对于 AWCM,需要将前端连接保持 2 分钟。导航到 DDoS 选项卡,然后将 HTTP 保持活动状态超时更改为 120000 毫秒(120 秒)。

创建 DataScript

以下是创建 DataScript 并将其与 AWCM 池关联的步骤:

  1. 导航到模板 > 脚本 > DataScript,然后单击创建

  2. 指定 DataScript 的名称。

  3. 下拉菜单中选择 AWCM 池,然后指定其他详细信息。

  4. 单击事件选项卡,然后单击事件子部分下的添加

  5. 添加以下 DataScript 以将 AWCM 池绑定到 Datascript。

<br<default_pool = "AWCM-Pool"
query = avi.http.get_query("awcmsessionid")
header = avi.http.get_header("awcmsessionid")
cookie = avi.http.get_cookie("awcmsessionid")
if query ~= nil and query ~= "true" then
avi.vs.log('QUERY HASH: '.. query)
avi.pool.select("AWCM-Pool")
avi.pool.chash(query)
elseif header ~= nil then
avi.vs.log('HEADER HASH: '.. header)
avi.pool.select("AWCM-Pool")
avi.pool.chash(header)
else if cookie ~= nil then
avi.vs.log('COOKIE HASH: '..cookie)
avi.pool.select("AWCM-Pool")
avi.pool.chash(cookie)
else
avi.vs.log('NIL HASH')
avi.pool.select("AWCM-Pool")
end
end

创建 L7 虚拟服务

按照 Workspace ONE UEM 管理控制台内创建 L7 虚拟服务部分中所述的相同导航步骤进行操作。

选择以下内容为 AWCM 创建虚拟服务:

  1. 应用程序配置文件:在上一节中创建的 AWCM 应用程序配置文件。

  2. 服务端口:443 和 2001 (SSL)。

  3. :在上一节中创建的 AWCM 池。

  4. 单击下一步,导航到 DataScript 选项卡。

  5. 单击添加 DataScript

  6. 要执行的脚本下拉菜单中选择在上一节中创建的 AWCM DataScript。

  7. 单击保存 DataScript