规划 StoreFront 部署
StoreFront 使用 Microsoft Internet Information Services (IIS) 上运行的 Microsoft .NET 技术提供将资源聚合在一起的企业应用商店,并使其可供用户访问。StoreFront 与 Citrix Virtual Apps and Desktops 部署相集成,为用户提供单一的自助访问点,以访问其桌面和应用程序。
StoreFront 包含以下核心组件:
- 身份验证服务可对用户进行身份验证,使其能够访问 Microsoft Active Directory,从而确保用户无需重新登录即可访问自己的桌面和应用程序。有关详细信息,请参阅用户身份验证。
- 应用商店枚举并聚合 Citrix Virtual Apps and Desktops 中的桌面和应用程序。用户通过 Citrix Workspace 应用程序、Citrix Receiver for Web 站点和 XenApp Services URL 访问应用商店。有关详细信息,请参阅用户访问选项。
- 订阅应用商店服务记录用户应用程序订阅的详细信息并更新其设备,以确保提供一致的漫游体验。有关增强用户体验的详细信息,请参阅优化用户体验。
StoreFront 可以在单台服务器上进行配置,也可以配置为多服务器部署。多服务器部署不但提供额外的容量,而且具有更高的可用性。StoreFront 的模块式体系结构可确保将用户应用程序订阅的配置信息和详细信息存储在服务器组中的所有服务器上,并在这些服务器组之间复制。这意味着如果 StoreFront 服务器因任何原因不可用,用户可以继续使用其余的服务器访问其应用商店。同时,出现故障的服务器上的配置和订阅数据在服务器连接到服务器组时自动更新。订阅数据会在服务器重新联机时更新,但是,如果服务器在脱机期间错过任何内容,您必须传播配置更改。如果出现硬件故障,需要替换服务器,可以在新服务器上安装 StoreFront,然后将其添加到现有服务器组中。新服务器将在加入服务器组时自动配置并更新用户的应用程序订阅。
下图显示了一个典型的 StoreFront 部署。
负载平衡
对于多服务器部署,需要使用 Citrix ADC 或 Windows 网络负载平衡等软件来实现外部负载平衡。可以为服务器之间的故障转移配置负载平衡环境,以提供容错部署。有关 Citrix ADC 负载平衡的详细信息,请参阅负载平衡。有关 Windows 网络负载平衡的详细信息,请参阅 https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831698(v=ws.11)。
对于具有成千上万个用户的部署或出现高负载的部署(例如,当大量用户在一段很短的时间内登录时),建议将请求的活动负载平衡从 StoreFront 发送到 Citrix Virtual Desktops 站点和 Citrix Virtual Apps 场。请使用具有内置 XML 监视器和会话一致性的负载平衡器,例如 Citrix ADC。
如果部署了 SSL 终止负载平衡器,或者需要执行故障排除,可以使用 PowerShell cmdlet Set-STFWebReceiverCommunication。
语法:
Set-STFWebReceiverCommunication [-WebReceiverService] <WebReceiverService> [[-Loopback] <On | Off | OnUsingHttp>] [[-LoopbackPortUsingHttp] <Int32>]
有效值包括:
- On - 这是新 Citrix Receiver for Web 站点的默认值。Citrix Receiver for Web 使用来自基本 URL 的架构(HTTPS 或 HTTP)和端口号,但会将主机替换为环回 IP 地址以与 StoreFront Service 进行通信。此值适用于单服务器部署以及具有非 SSL 终止负载平衡器的部署。
- OnUsingHttp - Citrix Receiver for Web 使用 HTTP 和环回 IP 地址与 StoreFront Service 进行通信。如果您使用的是 SSL 终止负载平衡器,请选择此值。此外,如果端口不是默认端口 80,还必须指定 HTTP 端口。
- Off - 此值将关闭环回,且 Citrix Receiver for Web 使用 StoreFront 基本 URL 与 StoreFront Service 通信。如果执行原位升级,这是用于避免现有部署中断的默认值。
例如,如果您使用的是 SSL 终止负载平衡器,IIS 配置为对 HTTP 使用端口 81,并且 Citrix Receiver for Web 站点的路径为 /Citrix/StoreWeb,则可以运行以下命令来配置 Citrix Receiver for Web 站点:
$wr = Get-STFWebReceiverService -VirtualPath /Citrix/StoreWeb
Set-STFWebReceiverCommunication -WebReceiverService $wr -Loopback OnUsingHttp -LoopbackPortUsingHttp 81
注意:
请关闭环回以使用 Fiddler 等任何 Web 代理工具来捕获 Citrix Receiver for Web 与 StoreFront Service 之间的网络流量。
Active Directory 注意事项
针对单服务器部署,可以在未加入域的服务器上安装 StoreFront(但某些功能将不可用);否则,StoreFront 服务器必须驻留在包含用户帐户的 Active Directory 域中,或者驻留在与用户帐户域具有信任关系的域中,除非您启用了将身份验证委派给 Citrix Virtual Apps and Desktops 站点或场的功能。组中的所有 StoreFront 服务器必须位于同一个域中。
用户连接
在生产环境中,Citrix 建议使用 HTTPS 以确保 StoreFront 与用户设备之间的通信安全。要使用 HTTPS,StoreFront 要求将托管身份验证服务和相关应用商店的 IIS 实例配置为支持 HTTPS。如果没有合适的 IIS 配置,StoreFront 将使用 HTTP 进行通信。可以随时从 HTTP 更改为 HTTPS,只要相应的 IIS 配置已就位即可。
如果您计划支持从企业网络外部访问 StoreFront,则需要使用 Citrix Gateway 来为远程用户提供安全的连接。可以在企业网络外部部署 Citrix Gateway 并使用防火墙将 Citrix Gateway 与公用和内部网络进行分隔。请确保 Citrix Gateway 能够访问包含 StoreFront 服务器的 Active Directory 林。
多个 Internet Information Services (IIS) Web 站点
StoreFront 允许您在每个 Windows 服务器的不同 IIS Web 站点中部署不同的应用商店,以便每个应用商店都具有不同的主机名和证书绑定。
首先,请创建两个 Web 站点(默认 Web 站点除外)。在 IIS 中创建多个 Web 站点后,请使用 PowerShell SDK 在其中每个 IIS Web 站点中创建一个 StoreFront 部署。有关在 IIS 中创建 Web 站点的详细信息,请参阅 How to set up your first IIS Website(如何设置您的第一个 IIS Web 站点)。
注意:
StoreFront 和 PowerShell 控制台不能同时打开。使用 PowerShell 控制台管理 StoreFront 配置之前,请始终关闭 StoreFront 管理控制台。同样,打开 StoreFront 控制台之前,请关闭 PowerShell 的所有实例。
示例:创建两个 IIS Web 站点部署,一个用于应用程序,一个用于桌面
Add-STFDeployment -SiteID 1 -HostBaseURL "https://www.storefront.app.com"
Add-STFDeployment -SiteID 2 -HostBaseURL "https://www.storefront.desktop.com"
StoreFront 会在检测到多个站点时禁用管理控制台并针对该影响显示一条消息。
有关详细信息,请参阅安装和配置之前的准备工作。
可扩展性
StoreFront 服务器组支持的 Citrix Workspace 应用程序用户数取决于所使用的硬件和用户活动的级别。根据模拟的用户登录活动,如果要枚举 100 个已发布的应用程序,并启动一种资源,需要一台 StoreFront 服务器以便每小时启用多达 30000 个用户连接,建议该服务器最低配备两个在底层双 Intel Xeon L5520 2.27Ghz 处理器服务器上运行的虚拟 CPU。
要每小时启用多达 60000 个用户连接,需要一个包含两台配置相似的服务器的服务器组;要每小时启用多达 90000 个连接,需要三个节点;要每小时启用多达 120000 个连接,需要四个节点;要每小时启用多达 150000 个连接,需要五个节点;要每小时启用多达 175000 个连接,需要六个节点。
还可以通过向系统中分配更多虚拟 CPU 来增加单台 StoreFront 服务器的吞吐量:要每小时启用多达 55000 个用户连接,需要分配四个虚拟 CPU,要每小时启用多达 80000 个用户连接,需要分配八个虚拟 CPU。
建议最低为每台服务器分配 4 GB 内存。使用 Citrix Receiver for Web 时,除分配基础内存外,请额外为每个用户的每个资源分配 700 字节内存。与使用 Citrix Receiver for Web 一样,使用 Citrix Workspace 应用程序时,除了本版本的 StoreFront 的基础 4 GB 内存要求外,请将环境设计为允许每个用户的每种资源额外具有 700 字节内存。
由于您的使用模式与上述模拟可能会有所差异,您的服务器在每小时支持的用户连接数可能会大于或小于上述数字。
重要:
仅当服务器组中的服务器之间的链接延迟小于 40 毫秒(禁用订阅)或小于 3 毫秒(启用订阅)时,才支持 StoreFront 服务器组部署。理想情况下,服务器组中的所有服务器都应位于同一位置(数据中心、可用区),但服务器组可以跨同一区域内的多个位置,前提是组中的服务器之间的链接满足这些延迟条件。示例包括跨云区域内或本地区域数据中心之间的可用区的服务器组。请注意,区域间的延迟因云提供程序而异。Citrix 不建议将跨多个位置作为灾难恢复配置,但它可能适用于高可用性。
不支持包含混合操作系统版本或混合操作系统语言或区域设置配置的 StoreFront 服务器组。
超时注意事项
StoreFront 应用商店与其所通信的服务器之间偶尔会出现网络问题或其他问题,从而导致用户延迟或故障。可以使用应用商店的超时设置来调整此行为。如果指定短超时设置,StoreFront 将快速终止一台服务器并尝试另一台服务器。例如,这在出于故障转移的目的配置多台服务器时非常有用。
如果指定更长的超时,StoreFront 将等待更长时间以便单台服务器做出响应。在网络或服务器的可靠性不确定以及经常出现延迟的情况下,这极其有利。
Citrix Receiver for Web 也有一个超时设置,用于控制 Citrix Receiver for Web 站点等待应用商店作出响应的时间。将此超时设置设为大于等于应用商店超时的值。超时设置越长,容错能力越强,但用户所经历的延迟可能越长。超时设置越短,用户延迟越短,但他们所遇到的故障可能越多。
有关设置超时的信息,请参阅通信超时持续时间和重试次数和通信超时持续时间和重试次数。