使用 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。
-
在主 StoreFront 服务器上打开 PowerShell 集成脚本环境 (ISE),然后运行以下命令将默认监视器更改为 HTTPS 443:
$ServiceUrl = "https://localhost:443/StorefrontMonitor" Set-STFServiceMonitor -ServiceUrl $ServiceUrl Get-STFServiceMonitor <!--NeedCopy--> -
完成后,将更改传播到 StoreFront 服务器组中的所有其他服务器。
-
要对监视器执行快速测试,请在 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 服务器的证书。
- 登录到 NetScaler® ADC 设备管理 GUI。
- 选择 Traffic Management(流量管理)> SSL > Certificates(证书)> CA Certificates(CA 证书)。
- 单击 Install(安装)。
- 在 Install CA Certificate(安装 CA 证书)页面上,输入证书-密钥对名称,单击 Choose File(选择文件)并浏览证书文件。
- 单击 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 密码短语。
要安装证书:
- 登录到 NetScaler ADC 设备管理 GUI。
- 选择 Traffic Management(流量管理)> SSL > Certificates(证书)> CA Certificates(CA 证书)。
- 单击 Install(安装)。
- 在 Install CA Certificate(安装 CA 证书)页面上:
- 输入 Certificate-Key Pair Name(证书-密钥对名称)。
- 在 Certificate File Name(证书文件名)下,单击 Choose File(选择文件)并浏览证书文件。
- 在 Key File Name(密钥文件名)下,单击 Choose File(选择文件)并浏览密钥文件。
- 在 Password(密码)下输入密码短语。
- 单击 Install(安装)。
- 单击 Link(链接)以将证书链接到根证书。

将单个 StoreFront 服务器节点添加到 Citrix ADC 设备负载均衡器
-
导航到 Traffic Management > Load Balancing > Servers(流量管理 > 负载均衡 > 服务器)。单击 Add(添加)并添加要进行负载均衡的每个 StoreFront 服务器。
示例 = 2 个名为 StoreFront-eu-1 和 StoreFront-eu-2 的 StoreFront 服务器
-
使用基于 IP 的服务器配置,并为每个 StoreFront 节点输入服务器 IP 地址。

定义 StoreFront 监视器以检查服务器组中所有 StoreFront 节点的状态
- 登录到 Citrix ADC 管理 GUI。
- 选择 Traffic Management > Load Balancing > Monitors > Add(流量管理 > 负载均衡 > 监视器 > 添加),然后添加一个名为 StoreFront 的新监视器并接受所有默认设置。
- 从 Type(类型)下拉菜单中,选择 StoreFront。
- 如果您已将 StoreFront 监视器配置为 HTTPS,请确保选中 Secure(安全)选项。否则,请取消选中此选项并输入端口 8000。
- 选择 Check Backend Services(检查后端服务)选项。此选项启用对 StoreFront 服务器上运行的服务的监视。通过探测在 StoreFront 服务器上运行的 Windows 服务来监视 StoreFront 服务,该服务返回以下服务的状态:
- W3SVC (IIS)
- WAS (Windows Process Activation Service)
- CitrixCredentialWallet
- CitrixDefaultDomainService

创建包含所有 StoreFront 服务器的服务组
-
导航到 Traffic Management > Load Balancing > Service Groups(流量管理 > 负载均衡 > 服务组)。按 Add(添加)。要通过 HTTPS 连接到 StoreFront 服务器,请选择 SSL 协议。保留其他设置为默认值。按 OK(确定)。
-
在您的服务组中,在 Service Group Members(服务组成员)下,单击 No Service Group Member(无服务组成员)。
- 单击 Service Based(基于服务)。
- 选择您之前定义的所有服务器。
- 要在负载均衡器和 StoreFront 服务器之间使用 SSL,请输入端口 443。否则,请输入端口 80。

-
添加 Monitors(监视器)部分并选择您之前创建的 StoreFront 监视器。

-
添加 Certificates(证书)部分。
- 绑定客户端证书。
- 绑定用于签名您之前导入的服务器证书的 CA 证书,以及可能属于 PKI 信任链的任何其他 CA。

-
添加 Settings(设置)部分。选择 Insert Client IP Header(插入客户端 IP 标头)并输入标头名称 X-Forwarded-For。这允许在Citrix Virtual Apps and Desktops 策略中使用客户端 IP 地址。
为用户流量创建负载均衡虚拟服务器
-
登录到 Citrix ADC 设备管理 GUI。
-
选择 Traffic Management > Load Balancing > Virtual Servers > Add(流量管理 > 负载均衡 > 虚拟服务器 > 添加)以创建新的虚拟服务器。
-
输入名称,选择 SSL 协议并输入 Port(端口)。单击“确定”以创建虚拟服务器。

-
将您之前创建的 Service Group(服务组)绑定到负载均衡虚拟服务器。
-
绑定您之前绑定到服务组的相同服务器和 CA 证书。
-
添加 Method(方法)部分并选择负载均衡方法。StoreFront 负载均衡的常见选择是 round robin(轮询)或 least connection(最少连接)。

-
添加 Persistance(持久性)部分。
-
将持久性方法设置为 COOKIEINSERT。
-
将超时设置为与 StoreFront 中的会话超时相同,默认情况下为 20 分钟。
-
命名 Cookie。例如,NSC_SFPersistence,因为这使得在调试期间易于识别。
-
将备份持久性设置为 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 进行负载均衡。
配置用于订阅同步的服务组
- 登录到 Citrix ADC 设备管理 GUI。
- 选择 Traffic Management > Load Balancing > Service Groups > Add(流量管理 > 负载均衡 > 服务组 > 添加)。
- 输入服务组名称,将协议更改为 TCP,然后单击 OK(确定)保存。
- 在 Service Group Members(服务组成员)部分中,添加您之前在“服务器”部分中定义的所有 StoreFront 服务器节点,并将 Port(端口)指定为 808。
- 添加 Monitors(监视器)部分。
- 单击显示 No Service Group to monitor Binding(无服务组可监视绑定)的位置。
- 单击“添加”。输入监视器 Name(名称)并将其 Type(类型)设置为 TCP。单击 Create(创建)。
- 单击 Bind(绑定)。

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

- 单击 OK(确定)。
- 单击 No Load Balancing Virtual Server ServiceGroup Binding(无负载均衡虚拟服务器服务组绑定),选择您之前创建的服务组,然后单击 Bind(绑定)。
- 添加 Method(方法)部分并将 Load Balancing Method(负载均衡方法)设置为 ROUNDROBIN(轮询)。
- 单击 Done(完成)以完成更改。
配置 StoreFront 以通过负载均衡器拉取订阅数据
请参阅配置订阅同步。
配置复制计划时,请指定与订阅同步虚拟服务器虚拟负载均衡器 IP 地址匹配的服务器组地址。