StoreFront

使用 Citrix ADC 进行负载平衡

本文提供在全部有效的负载平衡配置中部署包含两个或更多个 StoreFront 服务器的 StoreFront 服务器组的方法指导。本文提供有关如何将 Citrix ADC 设备配置为在服务器组中的 StoreFront 服务器之间对来自 Citrix Workspace 应用程序和 Web 浏览器的传入请求进行负载平衡的详细信息。

负载平衡部署的服务器证书要求

从商业证书颁发机构购买证书或通过您的企业证书颁发机构颁发证书之前,请考虑以下选项。

  • 选项 1: 在 Citrix ADC 设备负载平衡虚拟服务器 和 StoreFront 服务器组节点上均使用 *.example.com 通配符证书。这样可以简化配置,将来无需替换证书即可以添加其他 StoreFront 服务器。
  • 选项 2: 在 Citrix ADC 设备负载平衡虚拟服务器 和 StoreFront 服务器组节点上均使用包含使用者可选名称 (SAN) 的证书。证书中包含匹配所有 StoreFront 服务器完全限定域名 (FQDN) 的其他 SAN 为可选,但是建议采用,因为这样可以在 StoreFront 部署中提供更大的灵活性。

为 StoreFront 服务器组负载平衡器创建 DNS 记录

为所选的共享 FQDN 创建 DNS A 和 PTR 记录。您网络内的客户端使用此 FQDN 访问使用 Citrix ADC 设备负载平衡器的 StoreFront 服务器组。

示例:storefront.example.com 解析为负载平衡虚拟服务器虚拟 IP (VIP)。

配置 StoreFront 服务器

您希望在其之间进行负载平衡的所有 StoreFront 服务器都应配置为 StoreFront 服务器组的一部分,该组在服务器之间同步配置,以确保其配置相同。有关向服务器组中添加服务器的更多详细信息,请参阅加入现有服务器组

应将每台服务器配置为使用 HTTPS,以便对负载平衡器与 StoreFront 服务器之间的通信进行加密。请参阅使用 HTTPS 保护 StoreFront 的安全。证书必须包含负载平衡的 FQDN 作为公用名 (CN) 或者作为使用者备用名称 (SAN)。

将服务器组基本 URL 设置为负载平衡器的 URL。要修改基本 URL,请在 Citrix StoreFront 管理控制台的左侧窗格中右键单击服务器组,然后单击更改基本 URL。输入负载平衡器虚拟服务器的 URL。

(可选)将 Citrix Service Monitor 配置为使用 HTTPS

StoreFront 安装包括 Citrix Service Monitor Windows 服务。此服务没有其他服务依赖项,可以监视关键 StoreFront 服务的运行状况。这允许 Citrix ADC 和其他第三方应用程序监视 StoreFront 服务器部署的相对运行状况。

默认情况下,Monitor 在端口 8000 上使用 HTTP。可以选择将其更改为在端口 443 上使用 HTTPS。

  1. 打开主 StoreFront 服务器上的 PowerShell 集成脚本环境 (ISE),然后运行以下命令以将默认 Monitor 更改为 HTTPS 443:

    $ServiceUrl = "https://localhost:443/StorefrontMonitor"
    Set-STFServiceMonitor -ServiceUrl $ServiceUrl
    Get-STFServiceMonitor
    <!--NeedCopy-->
    
  2. 完成后,将更改传播到 StoreFront 服务器组中的所有其他服务器。

  3. 要在 Monitor 上执行快速测试,请在 StoreFront 服务器或可以通过网络访问 StoreFront 服务器的任何其他计算机上,将以下 URL 输入浏览器中。浏览器将返回每个 StoreFront 服务的状态的 XML 摘要。

    https://<loadbalancingFQDN>/StoreFrontMonitor/GetSFServicesStatus

    本地化后的图片

配置 Citrix ADC 负载平衡器

在 Citrix ADC 上配置服务器证书

  1. 登录到 Citrix ADC 设备管理 GUI。
  2. 选择 Traffic Management(流量管理)> SSL > Certificates(证书)> Server Certificates(服务器证书)
  3. 单击安装
  4. 安装服务器证书页面上,输入证书-密钥对名称,单击选择文件,然后浏览证书文件。如果证书文件不包含私钥,则此外您还需要选择密钥文件

证书安装屏幕的屏幕截图

将单个 StoreFront 服务器节点添加到 Citrix ADC 设备负载平衡器

  1. 导航到 Traffic Management(流量管理)> Load Balancing(负载平衡)> Servers(服务器)。单击添加,添加要进行负载平衡的每台 StoreFront 服务器。

    示例 = 2 个名为 StoreFront-eu-1 和 StoreFront-eu-2 的 StoreFront 服务器

  2. 使用基于 IP 的服务器配置,并输入每个 StoreFront 节点的服务器 IP 地址。

包含两台服务器的“服务器”屏幕的屏幕截图

定义一个 StoreFront 监视程序,用于检查服务器组中所有 StoreFront 节点的状态

  1. 登录到 Citrix ADC 管理 GUI。
  2. 选择 Traffic Management(流量管理)> Load Balancing(负载平衡)> Monitors(监视程序)> Add(添加),添加名为 StoreFront 的新监视程序,并接受所有默认设置。
  3. Type(类型)下拉菜单中,选择 StoreFront
  4. 如果您已将 StoreFront 监视程序配置为使用 HTTPS,请务必选择 Secure(安全)选项。否则,请将此选项保持未选中状态,然后输入端口 8000。
  5. 选择 Check Backend Services(检查后端服务)选项。选中此选项将 StoreFront 服务器上运行的服务进行监视。通过探测 StoreFront 服务器上运行的 Windows 服务监视 StoreFront 服务,该操作会返回以下服务的状态:
    • W3SVC (IIS)
    • WAS(Windows 进程激活服务)
    • CitrixCredentialWallet
    • CitrixDefaultDomainService

    “创建监视程序”屏幕的屏幕截图

创建包含所有 StoreFront 服务器的服务组

  1. 导航到 Traffic Management(流量管理)> Load Balancing(负载平衡)> Service Groups(服务组)。按添加。要通过 HTTPS 连接到 StoreFront 服务器,请选择 SSL 协议。将其他设置保留为默认设置。按确定

  2. 在您的服务组中,在 Service Group Members(服务组成员)下,单击 No Service Group Member(无服务组成员)。

    1. 单击 Service Based(基于服务)。
    2. 选择您之前定义的所有服务器。
    3. 要在负载平衡器与 StoreFront 服务器之间使用 SSL,请输入端口 443。否则,请输入端口 80。

    “创建服务组成员”页面的屏幕截图

  3. 添加 Monitors(监视程序)部分并选择您之前创建的 StoreFront 监视程序。

    “监视程序”屏幕的屏幕截图,其中列出了一个监视程序

  4. 添加 Certificates(证书)部分。

    1. 绑定客户端证书。
    2. 绑定用于为您之前导入的服务器证书进行签名的 CA 证书,以及可能属于 PKI 信任链的任何其他 CA。

    “添加绑定”屏幕的屏幕截图

  5. 添加 Settings(设置)部分。选择 Insert Client IP Header(插入客户端 IP 标头)并输入 X-Forwarded-For 的标头名称。这允许您在 Citrix Virtual Apps and Desktops 策略中使用客户端 IP 地址。

创建用于用户流量的负载平衡虚拟服务器

  1. 登录到 Citrix ADC 设备管理 GUI。

  2. 选择 Traffic Management(流量管理)> Load Balancing(负载平衡)> Virtual Servers(虚拟服务器)> Add(添加),创建一个新的虚拟服务器。

  3. 输入名称,选择 SSL 协议并输入端口。单击“确定”创建虚拟服务器。

    Citrix ADC 负载平衡虚拟服务器屏幕的屏幕截图

  4. 将您之前创建的服务组绑定到负载平衡虚拟服务器。

  5. 绑定您之前绑定到服务组的同一服务器和 CA 证书。

  6. 添加 Method(方法)部分并选择负载平衡方法。StoreFront 负载平衡的常用选项为 round robin(轮询)或 least connection(最少连接)。

    “负载平衡方法”部分的屏幕截图

  7. 添加 Persistance(持久性)部分。

    1. 将持久性方法设置为 COOKIEINSERT

    2. 将超时设置为与 StoreFront 中的会话超时相同,默认情况下为 20 分钟。

    3. 为该 Cookie 命名。例如,NSC_SFPersistence,这样可以使其在调试过程中易于识别。

    4. 将备份持久性设置为 NONE(无)。

    注意:

    如果不允许客户端存储 HTTP cookie,则后续请求不会含有 HTTP cookie,并且不使用“Persistence”(持久性)。

“持久性”部分的屏幕截图

配置 StoreFront 环回

当基本地址为负载平衡器时,对于 StoreFront 服务之间的内部通信,它可能会导致流量路由到负载平衡器,并且可能会路由到另一台服务器。这会导致出现性能不佳和意外行为。请使用 StoreFront 设置启用环回通信来避免这种情况。默认情况下,此设置设为,这意味着它会将服务地址的主机部分替换为环回 IP 地址 127.0.0.1,同时保持架构(HTTP 或 HTTPS)不变。此值适用于单服务器部署以及具有非 SSL 终止负载平衡器的部署。

如果负载平衡器终止 SSL 并通过 HTTP 与 StoreFront 通信(不推荐),则必须将 StoreFront 环回通信配置为 OnUsingHttp,这意味着 StoreFront 还会将架构从 HTTPS 更改为 HTTP。

  1. 打开 Citrix StoreFront。
  2. 对于每个应用商店,请转到管理 Receiver for Web 站点。对于每个 Web 站点,请转到配置
  3. 转至高级设置
  4. 启用环回通信设置更改为 OnUsingHttp

启用环回通信的屏幕截图

如果负载平衡器终止 SSL 并通过 HTTP 与 StoreFront 通信(不推荐),则需要将 StoreFront 环回通信配置为 OnUsingHttp,这意味着 StoreFront 还会将架构从 HTTPS 更改为 HTTP。

配置 Citrix ADC 负载平衡器以实现服务器组之间的订阅同步

如果您的多站点部署由两个或多个 StoreFront 服务器组组成,则可以按重复计划使用提取策略在这些服务器组之间复制订阅数据。StoreFront 订阅复制使用 TCP 端口 808,因此,使用现有采用 HTTP 端口 80 或 HTTPS 443 的负载平衡虚拟服务器将失败。要为此服务提供高可用性,请在部署中的每个 Citrix ADC 设备上创建第二个虚拟服务器,以便为每个 StoreFront 服务器组负载平衡 TCP 端口 808。

配置用于订阅同步的服务组

  1. 登录到 Citrix ADC 设备管理 GUI。
  2. 选择 Traffic Management(流量管理)> Load Balancing(负载平衡)> Service Groups(服务组)> Add(添加)
  3. 输入服务组名称,将协议更改为 TCP,然后单击确定进行保存。
  4. 服务组成员部分中,添加您之前在“服务器”部分中定义的所有 StoreFront 服务器节点,并将端口指定为 808
  5. 添加监视器部分。
    1. 单击显示 No Service Group to Monitor Binding(无可监视绑定的服务组)的位置。
    2. 单击添加。输入监视程序名称并将其类型设置为 TCP。单击创建
    3. 单击绑定

“显示器 TCP”的屏幕截图

为实现订阅同步创建负载平衡虚拟服务器

  1. 登录到 Citrix ADC 设备管理 GUI。
  2. 选择 Traffic Management(流量管理)> Load Balancing(负载平衡)> Virtual Servers(虚拟服务器)> Add(添加),添加一个新的服务器。
  3. 输入名称
  4. 将协议更改为 TCP
  5. 输入 IP 地址。
  6. 输入端口 808

    负载平衡 808 的屏幕截图

  7. 单击确定
  8. 单击 No Load Balancing Virtual Server ServiceGroup Binding(无负载平衡虚拟服务器服务组绑定),选择您之前创建的服务组,然后单击 Bind(绑定)。
  9. 添加 Method(方法)部分并将 Load Balancing Method(负载平衡方法)设置为 ROUNDROBIN
  10. 单击完成以完成更改。

配置 StoreFront 以通过负载平衡器提取订阅数据

请参阅配置订阅同步

配置复制计划时,请指定与订阅同步虚拟服务器虚拟负载平衡器 IP 地址匹配的服务器组地址。