StoreFront

使用 Citrix ADC 进行负载均衡

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

为 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 管理控制台中,在左侧窗格中右键单击 Server Group(服务器组),然后单击 Change Base URL(更改基本 URL)。输入负载均衡器虚拟服务器的 URL。

可选配置用于 HTTPS 的 Citrix Service monitor

StoreFront 安装包括 Citrix Service monitor Windows 服务。此服务没有其他服务依赖项,并监视关键 StoreFront 服务的运行状况。这允许 Citrix 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-->
    

配置 Citrix ADC 负载均衡器

安装根证书

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

  1. 登录到 NetScaler® ADC 设备管理 GUI。
  2. 选择 Traffic Management(流量管理)> SSL > Certificates(证书)> CA Certificates(CA 证书)。
  3. 单击 Install(安装)。
  4. Install CA Certificate(安装 CA 证书)页面上,输入证书-密钥对名称,单击 Choose File(选择文件)并浏览证书文件。
  5. 单击 Install(安装)。

安装服务器证书

要启用 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. 选择 Traffic Management(流量管理)> SSL > Certificates(证书)> CA Certificates(CA 证书)。
  3. 单击 Install(安装)。
  4. Install CA Certificate(安装 CA 证书)页面上:
    1. 输入 Certificate-Key Pair Name(证书-密钥对名称)。
    2. Certificate File Name(证书文件名)下,单击 Choose File(选择文件)并浏览证书文件。
    3. Key File Name(密钥文件名)下,单击 Choose File(选择文件)并浏览密钥文件。
    4. Password(密码)下输入密码短语。
    5. 单击 Install(安装)。
  5. 单击 Link(链接)以将证书链接到根证书。

证书安装屏幕截图

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

  1. 导航到 Traffic Management > Load Balancing > Servers(流量管理 > 负载均衡 > 服务器)。单击 Add(添加)并添加要进行负载均衡的每个 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 Process Activation Service)
    • CitrixCredentialWallet
    • CitrixDefaultDomainService

    创建监视器屏幕截图

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

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

  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 协议并输入 Port(端口)。单击“确定”以创建虚拟服务器。

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

  4. 将您之前创建的 Service Group(服务组)绑定到负载均衡虚拟服务器。

  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,并且不使用持久性。

持久性部分屏幕截图

配置 StoreFront 环回

当基本地址是负载均衡器时,StoreFront 服务之间的内部通信可能会导致流量路由到负载均衡器,并可能路由到另一个服务器。这会导致性能不佳和意外行为。使用 StoreFront 设置启用环回通信以避免此问题。默认情况下,此设置设置为 On(开),这意味着它将服务地址的主机部分替换为环回 IP 地址 127.0.0.1,同时保持方案(HTTP 或 HTTPS)不变。这适用于单个服务器部署和使用非 SSL 终止负载均衡器的部署。如果负载均衡器是 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,然后单击 OK(确定)保存。
  4. Service Group Members(服务组成员)部分中,添加您之前在“服务器”部分中定义的所有 StoreFront 服务器节点,并将 Port(端口)指定为 808
  5. 添加 Monitors(监视器)部分。
    1. 单击显示 No Service Group to monitor Binding(无服务组可监视绑定)的位置。
    2. 单击“添加”。输入监视器 Name(名称)并将其 Type(类型)设置为 TCP。单击 Create(创建)。
    3. 单击 Bind(绑定)。

监视器 TCP 屏幕截图

为订阅同步创建负载均衡虚拟服务器

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

    负载均衡 808 屏幕截图

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

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

请参阅配置订阅同步

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

使用 Citrix ADC 进行负载均衡