使用 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。要在 Citrix StoreFront 管理控制台中修改基本 URL,请在左侧窗格中右键单击“服务器组”,然后单击“更改基本 URL”。输入负载均衡器虚拟服务器的 URL。
可选地配置用于 HTTPS 的 Citrix 服务监视器
StoreFront 安装包括 Citrix 服务监视器 Windows 服务。此服务没有其他服务依赖项,并监视关键 StoreFront 服务的运行状况。这允许 NetScaler 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-->
配置 NetScaler 负载均衡器
安装根证书
如果您的 StoreFront 服务器使用由内部颁发机构签名的证书,则必须在 NetScaler 上安装根证书。这是必需的,以便 NetScaler 信任 StoreFront 服务器的证书。
- 登录到 NetScaler ADC 设备管理 GUI。
- 选择“流量管理”>“SSL”>“证书”>“CA 证书”。
- 单击“安装”。
- 在“安装 CA 证书”页面上,输入证书-密钥对名称,单击“选择文件”并浏览证书文件。
- 单击“安装”。
安装服务器证书
要启用 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。
- 选择“流量管理”>“SSL”>“证书”>“CA 证书”。
- 单击“安装”。
- 在“安装 CA 证书”页面上:
- 输入“证书-密钥对名称”。
- 在“证书文件名”下,单击“选择文件”并浏览证书文件。
- 在“密钥文件名”下,单击“选择文件”并浏览密钥文件。
- 在“密码”下输入密码短语。
- 单击“安装”。
- 单击“链接”以将证书链接到根证书。

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

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

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

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

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

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

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

-
添加“持久性”部分。
-
将持久性方法设置为“COOKIEINSERT”。
-
将超时设置为与 StoreFront 中的会话超时相同,默认情况下为 20 分钟。
-
命名 Cookie。例如,NSC_SFPersistence,因为这有助于在调试期间进行识别。
-
将备份持久性设置为“无”。
注意:
如果客户端不允许存储 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 进行负载均衡。
配置用于订阅同步的服务组
- 登录到 NetScaler ADC 设备管理 GUI。
- 选择“流量管理”>“负载均衡”>“服务组”>“添加”。
- 输入服务组名称,将协议更改为“TCP”,然后单击“确定”以保存。
- 在“服务组成员”部分中,添加您之前在“服务器”部分中定义的所有 StoreFront 服务器节点,并将“端口”指定为“808”。
- 添加“监视器”部分。
- 单击显示“无服务组到监视器绑定”的位置。
- 单击“添加”。输入监视器“名称”并将其“类型”设置为“TCP”。单击“创建”。
- 单击“绑定”。

为订阅同步创建负载均衡虚拟服务器
- 登录到 NetScaler ADC 设备管理 GUI。
- 选择“流量管理”>“负载均衡”>“虚拟服务器”>“添加”并添加新的服务组。
- 输入“名称”
- 将协议更改为“TCP”。
- 输入 IP 地址。
-
输入“端口”为“808”。

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