StoreFront

使用 NetScaler® ADC 进行负载平衡

本文提供了有关如何在所有活动负载平衡配置中部署包含两个或更多 StoreFront 服务器的 StoreFront 服务器组的指导。本文详细介绍了如何配置 NetScaler ADC 设备,以在服务器组中的 StoreFront 服务器之间负载平衡来自 Citrix Workspace 应用程序和 Web 浏览器的传入请求。

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

为您选择的共享 FQDN 创建 DNS A 和 PTR 记录。您网络中的客户端使用此 FQDN 通过 NetScaler 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 服务监视器以用于 HTTPS

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

默认情况下,监视器使用端口 8000 上的 HTTP。您可以选择将其更改为使用端口 443 上的 HTTPS。

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

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

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

    https://<loadbalancingFQDN>/StoreFrontMonitor/GetSFServicesStatus

    <ArrayOfServiceStatus xmlns="http://schemas.datacontract.org/2004/07/Citrix.DeliveryServices.ServiceMonitor.Contract" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ServiceStatus>
        <name>Citrix Peer Resolution Service</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>CitrixConfigurationReplication</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>CitrixCredentialWallet</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>CitrixDefaultDomainService</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>CitrixSubscriptionsStore</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>NetTcpPortSharing</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>WAS</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>W3SVC</name>
        <status>running</status>
    </ServiceStatus>
    </ArrayOfServiceStatus>
    <!--NeedCopy-->
    

配置 NetScaler 负载平衡器

安装根证书

如果您的 StoreFront 服务器使用由内部颁发机构签名的证书,则必须在 NetScaler 上安装根证书。这是必需的,以便 NetScaler 信任 StoreFront 服务器的证书。

  1. 登录到 NetScaler ADC 设备管理 GUI。
  2. 选择“流量管理”>“SSL”>“证书”>“CA 证书”。
  3. 单击“安装”。
  4. 在“安装 CA 证书”页面上,输入证书密钥对名称,单击“选择文件”并浏览到证书文件。
  5. 单击“安装”。

安装服务器证书

要启用 HTTPS,您需要一个证书,其主题备用名称包含负载平衡器的 FQDN。您可以使用企业或公共证书颁发机构对证书进行签名。

您必须拥有 PEM 格式的单独证书和密钥文件。如果您有包含 PKCS12 格式私钥的证书,则可以使用 openssl 转换文件。例如:

openssl pkcs12 -in cert.pfx -clcerts -nokeys -out cert.cer
openssl pkcs12 -in cert.pfx -nocerts -out storefrontlbeu.key
<!--NeedCopy-->

将出现提示,输入现有密码和新的 PEM 密码短语。

要安装证书:

  1. 登录到 NetScaler ADC 设备管理 GUI。
  2. 选择“流量管理”>“SSL”>“证书”>“CA 证书”。
  3. 单击“安装”。
  4. 在“安装 CA 证书”页面上:
    1. 输入“证书密钥对名称”。
    2. 在“证书文件名”下,单击“选择文件”并浏览到证书文件。
    3. 在“密钥文件名”下,单击“选择文件”并浏览到密钥文件。
    4. 在“密码”下输入密码短语。
    5. 单击“安装”。
  5. 单击“链接”将证书链接到根证书。

证书安装屏幕截图

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

  1. 导航到“流量管理”>“负载平衡”>“服务器”。单击“添加”并添加要进行负载平衡的每个 StoreFront 服务器。

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

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

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

定义 StoreFront 监视器以检查服务器组中所有 StoreFront 节点的状况

  1. 登录到 NetScaler ADC 管理 GUI。
  2. 选择“流量管理”>“负载平衡”>“监视器”>“添加”,然后添加一个名为 StoreFront 的新监视器并接受所有默认设置。
  3. 从“类型”下拉菜单中,选择“StoreFront”。
  4. 如果您已将 StoreFront 监视器配置为使用 HTTPS,则确保选中“安全”选项。否则,取消选中此选项并输入端口 8000。
  5. 选择“检查后端服务”选项。此选项可启用对 StoreFront 服务器上运行的服务的监视。StoreFront 服务通过探测在 StoreFront 服务器上运行的 Windows 服务进行监视,该服务返回以下服务的状态:
    • W3SVC (IIS)
    • WAS (Windows 进程激活服务)
    • CitrixCredentialWallet
    • CitrixDefaultDomainService

    创建监视器屏幕截图

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

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

  2. 在您的服务组中,在“服务组成员”下,单击“无服务组成员”。

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

    创建服务组成员页面截图

  3. 添加“监视器”部分并选择您之前创建的 StoreFront 监视器。

    列出监视器的“监视器”屏幕截图

  4. 添加“证书”部分。

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

    添加绑定屏幕截图

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

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

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

  2. 选择“流量管理”>“负载平衡”>“虚拟服务器”>“添加”以创建新的虚拟服务器。

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

    NetScaler 负载平衡虚拟服务器屏幕截图

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

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

  6. 添加“方法”部分并选择负载平衡方法。StoreFront 负载平衡的常见选择是“轮询”或“最少连接”。

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

  7. 添加“持久性”部分。

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

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

    3. 命名 Cookie。例如,NSC_SFPersistence,因为这使得在调试期间易于识别。

    4. 将备份持久性设置为“”。

    注意:

    如果客户端不允许存储 HTTP Cookie,则后续请求将没有 HTTP Cookie,并且不使用持久性。

持久性部分屏幕截图

配置 StoreFront 回送

当基本地址是负载平衡器时,对于 StoreFront 服务之间的内部通信,它可能导致流量路由到负载平衡器,并可能路由到另一个服务器。这会导致性能不佳和意外行为。使用 StoreFront 设置 启用回送通信 以避免此问题。默认情况下,此设置为“”,这意味着它将服务地址的主机部分替换为回送 IP 地址 127.0.0.1,同时保持方案(HTTP 或 HTTPS)不变。这适用于单个服务器部署和使用非 SSL 终止负载平衡器的部署。如果负载平衡器是 SSL 终止的,并且通过 HTTP(不建议)与 StoreFront 通信,则需要将 StoreFront 回送通信配置为“OnUsingHttp”,这意味着 StoreFront 还会将方案从 HTTPS 更改为 HTTP。

配置 NetScaler ADC 负载平衡器以在服务器组之间进行订阅同步

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

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

  1. 登录到 NetScaler ADC 设备管理 GUI。
  2. 选择“流量管理”>“负载平衡”>“服务组”>“添加”。
  3. 输入服务组名称,将协议更改为“TCP”并单击“确定”以保存。
  4. 在“服务组成员”部分中,添加您之前在“服务器”部分中定义的所有 StoreFront 服务器节点,并将“端口”指定为“808”。
  5. 添加“监视器”部分。
    1. 单击显示“无服务组到监视器绑定”的位置。
    2. 单击“添加”。输入监视器“名称”并将其“类型”设置为“TCP”。单击“创建”。
    3. 单击“绑定”。

监视器 TCP 屏幕截图

创建用于订阅同步的负载平衡虚拟服务器

  1. 登录到 NetScaler ADC 设备管理 GUI。
  2. 选择“流量管理”>“负载平衡”>“虚拟服务器”>“添加”并添加新的服务组。
  3. 输入“名称
  4. 将协议更改为“TCP”。
  5. 输入 IP 地址。
  6. 输入“端口”为“808”。

    负载平衡 808 屏幕截图

  7. 单击“确定”。
  8. 单击“无负载平衡虚拟服务器服务组绑定”,选择您之前创建的服务组并单击“绑定”。
  9. 添加“方法”部分并将“负载平衡方法”设置为“ROUNDROBIN
  10. 单击“完成”以完成更改。

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

请参阅 配置订阅同步

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

使用 NetScaler® ADC 进行负载平衡