使用 NetScaler® ADC 进行负载均衡
本文提供了有关如何在所有活动负载均衡配置中部署包含两个或更多 StoreFront 服务器的 StoreFront 服务器组的指导。本文详细介绍了如何配置 NetScaler ADC 设备,以对来自 Citrix Workspace 应用程序和 Web 浏览器在服务器组中的 StoreFront 服务器之间的传入请求进行负载均衡。
为 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。
可选配置用于 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 进程激活服务)
- 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,因为这使得在调试期间易于识别。
-
将备份持久性设置为 NONE。
注意:
如果客户端不允许存储 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 地址匹配。