SharePoint Server 中以主机命名的网站集体系结构和部署

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

以主机命名的网站集是在 SharePoint Server 中部署网站的可选方法。 希望拥有多个网站集(每个网站集都有自己的 DNS 名称)的用户可以选择部署以主机命名的网站集。 否则,用户应部署基于路径的网站集。

了解如何规划和实现以主机命名的网站集、设计 URL 和管理 URL。

用于以主机命名的网站集的体系结构和设计

以主机命名的网站集使您可以将唯一的 DNS 名称分配到网站集。 例如,您可以将其称为 http://TeamA.contoso.comhttp://TeamB.contoso.com。 此示例演示如何在同一 Web 应用程序中部署多个具有唯一 DNS 名称的网站。 这还使主机提供商可以向许多客户扩展环境。

本文将介绍如何使用 SharePoint Server 在建议的配置中实现以主机命名的网站集。 本文最后的部分包含关于高级配置的信息:使用多个具有以主机命名的网站集的 Web 应用程序

部署以主机命名的网站集的建议配置是将所有以主机命名的网站集放在单个 Web 应用程序中,如下图所示。

建议用于以主机命名的网站集的配置

Diagram that shows recommended configuration for host-named site collections

图中建议的配置包含以下元素:

  • 一个用于网站集的应用程序池。

  • 一个用于网站集的 Web 应用程序,这些网站集在一个应用程序池中托管。

  • 根网站集 (http://webapp.contoso.com) 。

  • 用于托管内容的以主机命名的网站集的多个示例网站:

    • 已发布 Intranet 内容 (http://intranet.contoso.com) ,其中包含 HR、设施和采购的子网站。

    • 团队网站 (http://teams.contoso.com) ,其中包含团队 1、团队 2 和团队 3 的子网站。

    • 网站 URL 采用以下格式的“我的网站”: http://my.contoso.com/personal/<site_name>

对于此示例来说,Web 应用程序中的网站数和网站的 URL 并不重要。

为以主机命名的网站集创建 Web 应用程序时,Web 应用程序和根网站集的 URL 将为 http://<_webapp.contoso.com_>/

Web 应用和根网站集的 URL。

建议使用此体系结构部署以主机命名的网站集,因为它与 Microsoft 365 环境使用的体系结构相同。 因此,此配置是经过最严格测试的配置。 新功能(包括应用模型和请求管理)已针对此配置进行优化,是今后最可靠的配置。

建议的配置不包括以下元素:

  • 在具有多个区域的环境中启用应用。

  • 混合以主机命名的网站集和基于路径的网站集(根网站集除外)。

  • 多个具有以主机命名的网站集的 Web 应用程序。

以主机命名的网站集与基于路径的网站集

使用以主机命名的网站集时,将为 Web 应用程序中的每个网站集分配唯一的 DNS 名称。 将多个以主机命名的网站集部署到单个 Web 应用程序时,会提高服务器场的可伸缩性,因为资源不用于支持多个应用程序池和 Web 应用程序。

SharePoint Server 可以支持以主机命名的网站集和基于路径的网站集。 下表将详细介绍两种选项之间的差异,并提供关于以主机命名的网站集的详细信息。

表:以主机命名的网站集和基于路径的网站集的对比

  以主机命名的网站集 基于路径的网站集
创建网站 可以使用 Microsoft PowerShell 创建以主机命名的网站集。 不能使用管理中心创建以主机命名的网站集。 可以使用 管理中心 或 PowerShell 创建基于路径的网站集。
URL 将为 Web 应用程序中的每个以主机命名的网站集分配唯一的 DNS 名称。
可以使用区域为以主机命名的网站分配最多 5 个 URL,包括虚拟 URL。
Web 应用程序中的所有基于路径的网站集都共享与 Web 应用程序相同的主机名(DNS 名称)。 可以扩展 Web 应用程序以实现最多 5 个区域,并为每个区域创建不同的主机名。 但是,用于区域的主机名将应用于 Web 应用程序内的所有网站集。
根网站集和搜索 爬网 Web 应用程序中的内容时需要根网站集。 根网站集可以是用户无法访问的网站集。 通常,在 Web 应用程序中将单个基于路径的网站集用作根网站集。 可以使用托管路径在 Web 应用程序中创建更多网站集。
URL 映射 使用 PowerShell 命令管理 (Set-SPSiteUrl、、 Remove-SPSiteUrlGet-SPSiteUrl) 的 URL。 使用备用访问映射管理 URL。
自助式网站创建 您需要将用于自助式网站创建的自定义解决方案与以主机命名的网站集一起使用。
SharePoint Server 默认安装的自助服务网站创建功能不适用于以主机命名的网站集。
如果使用默认安装的 SharePoint Server 中包含的自助式网站创建功能,请创建基于路径的网站。
托管路径 将在服务器场级应用适用于以主机命名的网站集的托管路径,并且这些路径可用于所有 Web 应用程序。
必须使用 PowerShell 来创建用于以主机命名的网站集的托管路径。
将在 Web 应用程序级应用适用于基于路径的网站的托管路径。
可以使用 管理中心 或 Microsoft PowerShell 创建用于基于路径的网站集的托管路径。

为以主机命名的网站集设计和管理 URL

PowerShell cmdlet 可以为以主机命名的网站集管理 URL 映射,并使您可以将 URL 映射到单个网站集:

  • Set-SPSiteUrl — 添加或更改站点的 URL 映射。

  • Remove-SPSiteUrl — 从网站中删除 URL 映射。

  • Get-SPSiteUrl— 查看网站集的所有 URL 和关联区域。

这些 cmdlet 为以主机命名的网站集提供类似于备用访问映射的 URL 映射功能。

区域和以主机命名的网站集

以主机命名的网站集可在任何区域中使用。 以主机命名的网站集不限于默认区域。 如果需要,可以实现多个区域,并使用区域和以主机命名的网站集来配置不同的身份验证设置或策略。

注意

若要使用不同的区域,需要将现有 Web 应用程序扩展到新区域。

可以通过为每个区域分配 1 个 URL 来向单个网站集分配最多 5 个 URL。 即使您通过仅实现 1 个区域来遵循建议的体系结构,您仍然可以为以主机命名的网站集分配最多 5 个 URL。 之所以进行此预配,是因为如果某个区域未通过扩展 Web 应用程序实现,SharePoint Server 将使用默认区域。

例如,以下 URL 可提供对同一 Internet 网站的访问:

搜索爬网帐户需要使用集成 Windows 身份验证(NTLM 或 Kerberos)访问默认区域中的内容。 由于声明身份验证允许在一个区域中进行多种类型的身份验证,因此此要求不应影响其他身份验证要求。

托管路径和以主机命名的网站集

为同一网站集配置的 URL 可能具有不同的架构和域,但它们必须具有相同的托管路径,即在域后面的"/"之后命名的所有内容必须相同。 例如, http://www.Contoso.com/sites/Site1http://www.Fabrikam.com/sites/Site1 可以指向同一网站集,但 http://www.Contoso.com/sites/Site1 不能 http://www.bar.com/sites/Project1

用于管理 URL 的 cmdlet 仅在主机名的根网站集(例如 http://www.Contoso.com)上运行。 这些 cmdlet 不在根下的托管路径网站集上运行,例如 http://www.Contoso.com/sites/Project1。 以主机命名的网站集的根下的网站将继承该以主机命名的根网站集的 URL 设置。

使用以主机命名的网站集进行 SSL 外部终止

当代理服务器终止一个 SSL 请求,然后使用 HTTP 将该请求转发到 Web 服务器时,会发生 SSL 外部终止。 若要使用以主机命名的网站集实现 SSL 外部终止,终止 SSL 连接的设备(例如反向代理服务器)必须可以生成自定义 HTTP 标头:Front-End-Https:开。 有关详细信息,请参阅 使用具有现装 SSL 终止的主机命名网站集

支持 SSL 的开箱即用终止,但不建议这样做,因为这会导致未加密的流量从代理服务器发送到 Web 服务器。

用于以主机命名的网站集的协议取决于使用 Set-SPSiteUrl cmdlet 将 URL 映射到特定区域时指定的 URL 参数的值:http 或 https。 请确保用于 Web 应用程序的 IIS 绑定、SSL 证书、反向代理配置以及其他必要配置都完整。

何时使用基于路径的网站集

如果满足以下任何条件,请使用传统的基于路径的网站集和备用访问映射:

  • 需要使用默认安装的 SharePoint Server 中包含的自助式网站创建功能。

    此条件不适用于自定义自助式网站创建解决方案。

  • SSL 终止是必需的,但 SSL 终止设备无法配置为生成必要的自定义 HTTP 标头。

    如果不要求 SSL 终止,仍可以将 SSL 桥接与主机命名的网站集一起使用。

  • 你计划使用不同的应用程序池来获得这些组提供的额外安全性,或者需要使用多个代理组。

    在这些情况下,可以使用以主机命名的网站集。 但是,跨多个 Web 应用程序映射以主机命名的网站集的 URL 所需的额外配置大大超过了使用以主机命名的网站集的优势。 有关详细信息,请参阅使用多个具有以主机命名的网站集的 Web 应用程序。 有关创建基于路径的网站集的详细信息,请参阅在 SharePoint Server 中创建网站集

使用主机头与以主机命名的网站集

主机标头允许 Web 服务器在同一 IP 地址和端口组合上托管多个网站。 如果传入 HTTP 请求包含主机标头名称,并且 IIS 中配置了匹配的主机标头,则 IIS 将使用来自相应网站的内容进行响应。

主机标头在 Web 应用程序 (IIS 网站) 级别配置,它们是网站绑定属性之一。

请务必了解 IIS 中的主机标头与主机命名网站集之间的区别。 IIS 网站级别的主机标头仅适用于基于路径的网站集。

使用以主机命名的网站集时,SharePoint 负责根据通过 IIS 传递的传入请求解析地址的正确网站。 在大多数情况下,在 IIS 网站级别应用主机标头绑定使得无法通过 IIS 网站访问以主机命名的网站集。 之所以无法访问是因为 IIS 不会响应与主机标头绑定不同的主机名请求。

可以在 IIS 中使用通配符主机标头绑定,但必须确保 Web 应用程序中的所有网站集都符合通配符主机标头模式。

重要

如果现有 Web 应用程序设置了主机标头绑定,则在从 IIS 中删除绑定之前,IIS 不会从以主机命名的网站集返回页面。 有关详细信息,请参阅更新 SharePoint Server 的 Web 应用程序 URL 和 IIS 绑定

在相同的 Web 应用程序中混合以主机命名的网站集和基于路径的网站集

可以在相同的 Web 应用程序中使用以主机命名的网站集和基于路径的网站集。 若要确保这两种类型的网站集可供用户访问,请不要将主机标头绑定放在 Web 应用程序的 IIS 网站上,包括从 Web 应用程序扩展的区域的 IIS 网站。 如果现有 Web 应用程序设置了主机标头绑定,则在从 IIS 中删除绑定之前,IIS 不会从以主机命名的网站集返回页面。

我的网站

在将两种类型的网站集与"My Sites"一起使用时,请考虑实现自己的设置过程以将"My Sites"创建为以主机命名的网站集,而不是基于路径的网站集。

用于以主机命名的网站集的部署和配置

创建用于以主机命名的网站集的 Web 应用程序

如果不打算在同一服务器上配置两个或多个共享相同端口号的 IIS 网站,请在“默认”区域中创建一个 Web 应用程序。 不要在 IIS 网站级别应用主机标头绑定。

为以主机命名的网站集创建 Web 应用程序的具体步骤

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 Microsoft PowerShell cmdlet 的服务器上的“管理员”组。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server cmdlet 的权限。

    注意

    如果没有权限,请联系安装程序管理员或SQL Server管理员请求权限。 有关 PowerShell 权限的详细信息,请参阅 Add-SPShellAdmin

  2. 打开“SharePoint 命令行管理程序”

  3. 在 PowerShell 命令提示符 (,即 PS C:\>) ,键入以下语法:

New-SPWebApplication -Name 'Contoso Sites' -port 80 -ApplicationPool ContosoAppPool -ApplicationPoolAccount (Get-SPManagedAccount 'Contoso\JDoe') -AuthenticationProvider (New-SPAuthenticationProvider -UseWindowsIntegratedAuthentication)

创建根网站集

根网站集是任何 Web 应用程序的要求。 对内容进行爬网也有必要。 此网站集的 URL 必须与 Web 应用程序相同。 目前,SharePoint 会阻止使用与 Web 应用程序相同的 URL 创建以主机命名的网站集。 因此,将根网站集创建为基于路径的网站集。

A web application with a root site.

以下示例将创建作为根网站集的空网站集:

New-SPSite 'http://<servername>' -Name 'Portal' -Description 'Portal on root' -OwnerAlias 'contoso\administrator' -language 1033 -Template 'STS#0'

内容源中仅显示 Web 应用程序的根网站集。 尽管 Web 应用程序中的所有其他以主机命名的网站集未显示在内容源中,但默认情况下,搜索会自动对其他以主机命名的网站集进行爬网。

创建以主机命名的网站集

您必须使用 Microsoft PowerShell 创建以主机命名的网站集。 不能使用 SharePoint Server 管理中心 Web 应用程序创建以主机命名的网站集,但可以在创建网站集后使用管理中心管理网站集。

可以使用 Microsoft PowerShell New-SPSite cmdlet 和 -HostHeaderWebApplication 参数创建以主机命名的网站集,如以下示例所示:

创建以主机命名的网站集

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 Microsoft PowerShell cmdlet 的服务器上的“管理员”组。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server cmdlet 的权限。

    注意

    如果没有权限,请联系安装程序管理员或SQL Server管理员请求权限。 有关 PowerShell 权限的详细信息,请参阅 Add-SPShellAdmin

  2. 打开“SharePoint 命令行管理程序”

  3. 在 PowerShell 命令提示符 (,即 PS C:\>) ,键入以下语法:

    New-SPSite 'http://portal.contoso.com' -HostHeaderWebApplication (Get-SPWebApplication 'Contoso Sites') -Name 'Portal' -Description 'Customer root' -OwnerAlias 'contoso\administrator' -language 1033 -Template 'STS#0'
    

    此语法在名为“Contoso Sites”的 SharePoint Server Web 应用程序中创建一个具有 URL https://portal.contoso.com 的以主机命名的网站集。

将托管路径与以主机命名的网站集一起使用

可以将以主机命名的网站集和托管路径一起实现。 主机提供商可以为相同的客户提供多个网站集,并且每个网站集都共享客户的唯一主机名,但通过主机名后的 URL 路径进行区分。 每个服务器场限制具有 20 个用于以主机命名的网站集的托管路径。 有关详细信息,请参阅 SharePoint Server 的软件边界和限制。

以主机命名的网站集的托管路径与基于路径的网站集的托管路径的行为不同。 以主机命名的网站集的托管路径可用于服务器场内所有以主机命名的网站集,无论以主机命名的网站集位于哪个 Web 应用程序内。 相反,基于路径的网站集的托管路径仅适用于相同 Web 应用程序中的网站。 基于路径的网站集的托管路径不适用于其他 Web 应用程序中的基于路径的网站集。 一种类型的网站集的托管路径不适用于另一种类型的网站集。

若要创建托管路径,您必须先创建所需基 URL 的网站集。 例如,若要创建 http://teams.contoso.com/finance ,必须首先为 http://teams.contoso.com创建网站集。

若要创建与以主机命名的网站集一起使用的托管路径,请将 PowerShell New-SPManagedPath cmdlet 与 HostHeader 参数一起使用,如以下示例所示:

New-SPManagedPath 'departments' -HostHeader

还可以使用 Explicit 参数来创建显式托管路径。

以下示例将显示在托管路径上创建的以主机命名的网站集:

New-SPSite 'http://portal.contoso.com/departments/marketing' -HostHeaderWebApplication (Get-SPWebApplication 'Contoso Sites') -Name 'Marketing' -Description 'Portal Marketing' -OwnerAlias 'contoso\administrator' -language 1033 -Template 'STS#0'

要删除现有的托管路径,请使用 PowerShell Remove -SPManagedPath cmdlet,如以下示例所示:

Remove-SPManagedPath 'departments' -HostHeader

即使存在网站集,也可以使用 PowerShell 删除托管路径。 如果删除托管路径,则不能再访问网站集。 要访问现有网站集,请使用 PowerShell 重新创建托管路径。

将 URL 映射到以主机命名的网站集

创建新的主机名网站集时,默认备用访问映射仍然存在,但无法使用。 请使用 PowerShell 命令来为以主机命名的网站集管理 URL 映射。

向现有网站添加映射:

Set-SPSiteUrl (Get-SPSite 'http://teams.contoso.com') -Url 'http://teamsites.contoso.com' -Zone Intranet

将每个 URL 映射应用于单个区域。 映射 URL 时,请使用以下区域名称之一:

  • 默认值

  • Intranet

  • Internet

  • 自定义警报

  • Extranet

如果未指定 Zone 参数,并且 URL 映射条目为新的,则使用默认区域。 仍然存在限制,即唯一网站集只有 5 个 URL。

删除网站的映射:

Remove-SPSiteUrl 'http://teamsites.contoso.com'

显示网站的所有 URL 映射:

Get-SPSiteUrl -Identity (Get-SPSite 'http://teams.contoso.com')

为以主机命名的网站集配置 SSL 证书

重要

如果使用 SharePoint Server 订阅版,请使用新的证书管理功能安装 SSL 证书并将其分配给 Web 应用程序。 此功能允许您直接在 SharePoint 中安装和管理 SSL 证书,而无需在 IIS 中手动配置 SSL 证书。

可以配置使用 SSL 的单个 Web 应用程序,然后在该 Web 应用程序内创建多个以主机命名的网站集。 若要通过 SSL 浏览网站,必须将服务器证书安装并分配到 IIS 网站。 Web 应用程序内的每个以主机命名的网站集都共享分配到 IIS 网站的单个服务器证书。

您需要获得通配符证书或主题备用名称 (SAN) 证书,然后使用与该证书匹配的以主机命名的网站集 URL 格式。 例如,如果获取 *.contoso.com 通配符证书,则必须生成以主机命名的网站集 URL,例如 https://site1.contoso.comhttps://site2.contoso.com等,以使这些网站能够通过浏览器 SSL 验证。 但是,如果需要用于网站的唯一的二级域名,必须创建多个 Web 应用程序,而不是多个以主机命名的网站集。

若要为以主机命名的网站集配置 SSL,请在创建 Web 应用程序时启用 SSL。 此设置将使用 SSL 绑定而不是 HTTP 绑定创建 IIS 网站。 创建 Web 应用程序之后,请打开 IIS 管理器,然后将证书分配到 SSL 绑定。 然后,您可以在该 Web 应用程序中创建网站集。

如果使用以主机命名的网站集实现多个区域,请确保每个区域和相应的 IIS 站点都适合使用 SSL 或 HTTP) (证书和绑定配置。

将以主机命名的网站集与外部 SSL 终止一起使用

可以将以主机命名的网站集与外部 SSL 终止一起使用。 在将 SSL 终止与以主机命名的网站集一起使用时,存在多项要求:

注意

支持 SSL 的开箱即用终止,但不建议这样做,因为这会导致未加密的流量从代理服务器发送到 Web 服务器。

  • 至少一个 IIS 网站应该具有端口 80(或终止程序将请求转发到的任何端口)上的绑定。 Microsoft 建议您使用带有 HTTP/80 的 Web 应用程序的 IIS 网站(或用于 Web 应用程序的区域的 IIS 网站)。

  • SSL 终止程序或反向代理必须保留来自客户端的原始 HTTP 主机头。

  • 如果客户端 SSL 请求发送到默认的 SSL 端口 (443),SSL 终止程序或反向代理必须将解密的 HTTP 请求转发到默认 HTTP 端口 (80) 上的前端 Web 服务器。 如果客户端 SSL 请求发送到非默认 SSL 端口,SSL 终止程序或反向代理必须将解密的 HTTP 请求转发到相同的非默认 HTTP 端口 (80) 上的前端 Web 服务器。

  • 终止 SSL 连接的设备(例如反向代理服务器)必须可以生成自定义 HTTP 标头:Front-End-Https:开。 此标头与 Outlook Web Access (OWA) 使用的自定义标头相同: Front-End-Https: On/Off。 该部分稍后将介绍关于该自定义标头的详细信息。

若要将以主机命名的网站集与外部 SSL 终止一起使用,请按照通常为 SSL 终止配置 Web 应用程序的方法进行配置,并确保它符合上述要求。 在此方案中,SharePoint Server 将使用 HTTPS 而不是 HTTP 在该 Web 应用程序中呈现以主机命名的网站集的链接。

反向代理服务器可以发布 SharePoint Server 以主机命名的网站集并执行外部 SSL 终止。 在此方案中,反向代理服务器将最终用户和 SharePoint Web 前端服务器之间的联系类型从 SSL/TLS 更改为 HTTP,反之亦然。 在这种情况下,反向代理服务器必须将请求转发到 SharePoint Web 前端服务器时,在用户的请求中插入额外的 HTTP 标头。 此额外的 HTTP 标头向 SharePoint Server 指示最终用户启动的连接类型,以便 SharePoint Server 在其响应中适当地呈现 URL。 HTTP 标头名称为"Front-End-Https",以下是其可接受的值。

表:Front-End-Https 标头值

说明
反向代理服务器通过加密的(SSL 或 TLS)HTTPS 连接来接收最终用户的请求。 例如, Front-End-Https:开
反向代理服务器通过未加密的 HTTP 连接来接收最终用户的请求。

这些值不区分大小写。 例如,on、ON、On 和 oN 都可以接受。

该自定义标头仅适用于以主机命名的网站集。 它不适用于基于路径的网站集。

以下示例将显示在 https 上创建的以主机命名的网站集:

New-SPSite 'https://portal.contoso.com' -HostHeaderWebApplication  (Get-SPWebApplication 'Contoso Sites') -Name 'Portal' -OwnerAlias 'contoso\administrator' -language 1033 -Template 'STS#0'

此示例在 URL 为 https://portal.contoso.com 的 SharePoint Server Web 应用程序上,创建 URL 为 https://webapp.contoso.com 的以主机命名的网站集。

在具有多个区域的环境中启用应用程序

注意

本部分仅适用于 SharePoint Server 2013。

2013 年 3 月的公共更新使您可以为每个 Web 应用程序区域配置应用程序域,并使用备用访问映射和主机头 Web 应用程序配置。 发布该更新之前,仅可以托管一个应用程序域,并且它必须位于"默认"区域。 无法对备用访问映射或主机标头 Web 应用程序配置使用应用域。

若要解决该问题,请应用 SharePoint Server 累积更新服务器修补程序包:2013 年 3 月 12 日,并参阅适用于 SharePoint 2013 的更新

将基于路径的网站集迁移到以主机命名的网站集

确定现有 Web 应用程序中的以主机命名的网站集

可以使用以下脚本来确定哪些现有网站集是基于路径的,哪些是主机命名的,以便稍后确定是否要将其中任何一种类型转换为另一种类型。

$webApp = Get-SPWebapplication 'http://webapp.contoso.com'
foreach($spSite in $webApp.Sites)
{
if ($spSite.HostHeaderIsSiteName)
{ Write-Host $spSite.Url 'is host-named' }
else
{ Write-Host $spSite.Url 'is path based' }
}

将基于路径的网站集转换为以主机命名的网站集

可以使用 PowerShell cmdlet Set-SPSite 将基于路径的网站集转换为以主机命名的网站集和以主机命名的网站集转换为基于路径的网站集。 网站重命名后,建议应用池回收以强制刷新缓存。 不能使用 SharePoint 管理中心网站或Windows PowerShell附加和分离、装载和卸载内容数据库的 cmdlet 来转换网站集。

以下示例将标准网站集转换为以主机命名的网站集:

Get-SPSite https://SP2013content.contoso.com/sites/PathBasedSiteCollection|Set-SPSite -url https://HostNamedSiteCollection.contoso.com

使用多个具有以主机命名的网站集的 Web 应用程序

如果使用多个 Web 应用程序,将为系统添加更多操作开销和复杂性。 我们建议您为网站集使用一个 Web 应用程序。 但是,以下原因可能影响您,使您跨多个 Web 应用程序实现网站集:

  • 组织的安全策略要求单独的 Web 应用程序或应用程序池。

  • 需要以不同方式配置 Web 应用程序。

  • 组织需要使用多个代理组。

在服务器场中使用多个 Web 应用程序实现以主机命名的网站集更为复杂,因为必须完成更多配置步骤。 例如,使用以主机命名的网站的 URL 可以分布于共享单个服务器场中同一端口的多个 Web 应用程序。 此方案需要更多配置步骤以确保请求映射到正确的 Web 应用程序。 必须通过配置单独的 IP 地址以代表每个 Web 应用程序来手动配置服务器场中的每个 Web 服务器上的映射。 还必须创建和管理主机头绑定来为每个网站分配唯一的 IP 地址。 脚本可以跨服务器管理和复制此配置;但是,这种配置复制会增加解决方案的复杂性。 每个唯一 URL 还需要 DNS 中的映射。 一般来说,如果必须使用多个 Web 应用程序,建议使用具有备用访问映射的基于路径的网站集。

重要

SharePoint Server 订阅版版本 23H1 允许用户为其 Web 应用程序分配通配符主机标头绑定。 此新功能可通过以下方式帮助你将多个 Web 应用程序与以主机命名的网站集配合使用:

  1. 用户不再需要在其每个 SharePoint 服务器上手动为其 Web 应用程序分配唯一的 IP 地址绑定。 运行 SPSE 版本 23H1 的用户可以将通配符主机标头分配给其每个 Web 应用程序,这更易于管理。

  2. 分配给每个 Web 应用程序的通配符主机标头必须是唯一的。 例如,Web 应用程序 1 可以是 *.internal.example.com,Web 应用程序 2 可以是 *.external.example.com,等等。

  3. 这些 Web 应用程序中的以主机命名的网站集必须符合其 Web 应用程序的通配符主机标头模式。 例如,如果 Web 应用程序的通配符主机标头为 *.external.example.com,则它可以使用 DNS 名称(如 site1.external.example.comsite2.external.example.com等)托管以主机命名的网站集。

  4. 通配符主机标头绑定只能有一个通配符作为 DNS 名称中最左侧的标签。 例如,有效的通配符主机标头可以是 *.external.example.com,但它不能是 external.*.example.com、、*.*.example.comexternal*.example.com*external.example.com等。

以下两个表将对比三种不同的用于实现网站集的设计选择。 这些表旨在帮助您了解每种方法的后果,以及配置如何根据体系结构发生变化。

表:设置网站集的不同设计选择的结果

  服务器场中的所有网站均合并到一个 Web 应用程序的以主机命名的网站集 具有备用访问映射和多个 Web 应用程序的基于路径的网站集 服务器场中具有多个 Web 应用程序的以主机命名的网站集
网站集设置 使用 Microsoft PowerShell 或自定义网站集设置解决方案来设置网站。 使用 管理中心 或 Microsoft PowerShell 来部署网站。 使用 Microsoft PowerShell 或自定义网站集设置解决方案来设置网站。
URL 管理 可以将 DNS 中的所有网站集映射为指向表示 Web 应用程序的单个 IP 地址。 如果实现了多个区域,请为每个网站 URL 配置备用访问映射。 每个区域还需要 DNS 中的映射。 需要额外的配置,以确保共享相同端口的网站的请求映射到正确的 Web 应用程序。 每个唯一主机名还需要 DNS 中的映射。 需要手动进行该配置,并且必须在每个网站的服务器场中的每个 Web 服务器上完成它。
更多 URL 您可以将最多五个 URL 分配给以主机命名的网站集,每个区域一个。 无需将 Web 应用程序扩展到多个区域。 如果未实现某个区域,则使用默认区域。 网站集的 URL 数限制为 5,因为允许的区域数为 5。 您可以将最多五个 URL 分配给以主机命名的网站集,每个区域一个。 无需将 Web 应用程序扩展到多个区域。 如果未实现某个区域,则使用默认区域。
服务应用程序 服务器场中的所有网站都使用单个服务应用程序组。 您可以为不同的 Web 应用程序实现自定义服务应用程序组。 您可以为不同的 Web 应用程序实现自定义服务应用程序组。
区域 无需实现多个区域,就可以为同一网站集实现不同的 URL。 如果未实现某个区域,则使用默认区域。 必须使用区域才能为同一网站集实现不同 URL。 无需实现多个区域,就可以为同一网站集实现不同的 URL。 如果未实现某个区域,则使用默认区域。
身份验证 使用一个 Web 应用程序时,身份验证选项限制为 5 个区域。 但是,您可以在一个区域上实现多个身份验证方法。 您可以为每个 Web 应用程序实现不同的身份验证和区域设计。 您可以为每个 Web 应用程序实现不同的身份验证和区域设计。
身份验证 在域 URL 之间提供客户端脚本隔离。 如果需要,还可以将 Web 应用程序隔离到专门的应用程序池,以实现进程隔离。
在域 URL 之间提供隔离。
如果需要,还可以将 Web 应用程序隔离到专门的应用程序池,以实现进程隔离。
在域 URL 之间提供隔离。
Policy 可以使用区域将不同策略分配到以主机命名的网站。 可以在 Web 应用程序级使用策略以强制实施权限,不管对各网站或文档配置的权限如何。 此外,可为不同区域实现不同的策略。 可为不同的 Web 应用程序实现不同的策略以强制实施权限,不管对各网站或文档配置的权限如何。
此外,可为不同区域实现不同的策略。

还可能影响设计决策的可伸缩性数量包括网站集、内容数据库和托管路径建议的最大数。

下表总结了根据本文中介绍的三个设计选项中的每一个管理 URL 所必需的配置。

表:不同网站集设计所需的配置

  服务器场中的所有网站均合并到一个 Web 应用程序的以主机命名的网站集 具有备用访问映射和多个 Web 应用程序的基于路径的网站集 服务器场中具有多个 Web 应用程序的以主机命名的网站集
在 SharePoint Server 内 创建 Web 应用程序。
创建用户无法访问的根网站集, (例如 https://HNSC01.fabrikam.com ,) 。
使用主机标头 (创建以主机命名的网站集, https://intranet.fabrikam.com 例如,) 。
(可选)为每个网站集添加更多 URL,并使用 Set-SPSiteUrl 配置区域。 (在企业门户设计示例中,不需要,因为只有一个区域。)
使用主机标头 (创建 Web 应用程序, https://intranet.fabrikam.com 例如,) 。
(可选)配置备用访问映射。 在设计示例中,不需要,因为只有一个区域) 。
创建基于路径的根网站集。
创建 Web 应用程序。
创建用户无法访问的根网站集, (例如 https://HNSC01.fabrikam.com ,) 。
使用主机标头 (创建以主机命名的网站集, https://intranet.fabrikam.com 例如,) 。
(可选)为每个网站集添加更多 URL,并使用 Set-SPSiteUrl 配置区域。 (在企业门户设计示例中,不需要,因为只有一个区域。)
在 IIS 中 为 Web 应用程序中的所有以主机命名的网站(域)关联 SSL 证书(通配符证书或 SAN 证书)。 在 IIS 中为每个区域(每个区域是 IIS 中的单独 Web 应用程序)关联 SSL 证书。 为 Web 应用程序中的以主机命名的网站(域)关联 SSL 证书(通配符证书或 SAN 证书)。
在服务器场中的每个 Web 服务器上且对于共享端口的每个 Web 应用程序:
配置单独的 IP 地址以代表每个 Web 应用程序。
手动编辑 IIS 网站绑定,以删除创建 Web 应用程序时创建的主机标头绑定,并将此绑定替换为 IP 地址绑定。

如果在不同的 IP 地址上使用多个 Web 应用程序,则可能需要为每个服务器完成 NIC、DNS 和负载均衡器的额外配置。

创建多个具有以主机命名的网站集的 Web 应用程序

若要在相同的服务器和端口上将多个 Web 应用程序和以主机命名的网站集一起运行,必须向 Web 应用程序分配不同的 IP 地址。 此类体系结构要求您将 IP 地址添加到 Web 服务器,并配置网络路由器,使其将主机名指向 Web 应用程序的 IP 地址。

注意

可以创建没有主机标头的 Web 应用程序。 如果创建的 Web 应用程序没有主机标头,则不能在同一 Web 服务器上创建具有主机命名网站集的多个 Web 应用程序。

为以主机命名的网站集创建多个 Web 应用程序的过程包括以下任务:

  • 创建多个 Web 应用程序。

  • 在服务器场的每个 Web 服务器上的 IIS 中添加新的虚拟 IP 地址。

创建多个适用于以主机命名的网站集的 Web 应用程序

以下示例将创建 Web 应用程序:

New-SPWebApplication -Name 'webapp' 'webapp.contoso.com' -port 80 -ApplicationPool ContosoAppPool -ApplicationPoolAccount (Get-SPManagedAccount 'Contoso\JDoe') -AuthenticationProvider (New-SPAuthenticationProvider -UseWindowsIntegratedAuthentication)

为每个 Web 应用程序重复该任务。

在 IIS 中添加虚拟 IP 地址

必须在托管 Web 应用程序的所有服务器上应用 IP 绑定。 将休眠命令设置为 60 秒,以确保在服务器场的所有服务器上设置 IP 绑定之后,再删除 Web 应用程序上的现有主机头。 远程脚本可用于该作业。

使用以下命令将唯一的 IP 绑定添加到创建的每个 Web 应用程序,然后从这些 Web 应用程序删除主机头绑定。

Import-Module WebAdministration
#add empty binding to webapp on IP 192.168.10.20
New-WebBinding -Name 'webapp' -IPAddress '192.168.10.20' -HostHeader ''
Sleep 60
# remove existing binding webapp.contoso.com from existing web application
Get-WebBinding -Name 'webapp' -HostHeader 'webapp.contoso.com'|Remove-WebBinding

另请参阅

其他资源

Get-SPSiteUrl

Set-SPSiteUrl

Remove-SPSiteUrl

计划 SharePoint Server 的逻辑体系结构