如何配置自助服务门户 SharePoint 网站或 Web 内容服务器以实现负载平衡

今天我花了几个小时来尝试为我今天的测试实验室设置负载平衡。实在太痛苦了,因为我们没有任何文档记录了如何执行此操作,而网上却到处充斥着有关该主题的信息。事实上,它最终还是归结为您需要知道的一些简单事情。希望这篇博文可为大家节省大量时间并避免麻烦!

就本博文而言,我做了以下几件事:

1) 我使用的是 Windows 网络负载平衡 (NLB)

2) 我在我的 SharePoint Web 场服务器上运行 NLB

3) 我在与我的 SharePoint Web 服务器相同的服务器上运行 Web 内容服务器。

4) 我的 SharePoint Web 服务器/Web 内容服务器在 Hyper-V 虚拟机中运行。

5) 我将每台虚拟机配置为使用两个网络适配器。第一个配置为“管理”网络适配器并配置为使用 DHCP 获取 IP 地址。另一个配置为拥有静态 IP 地址以设置 NLB。

 

图像

 

您可以通过不同方式执行以下操作:

1) 分别部署 SharePoint Web 服务器和 Web 内容服务器并分别对它们进行负载平衡。

2) 在物理主机而非虚拟机中部署服务器。

3) 设置一台并非运行于 SharePoint Web 服务器或 Web 内容服务器的 NLB 服务器,但对它们的流量进行负载平衡。

4) 每台计算机使用一个网络适配器。不需要对“管理”和“NLB”使用不同的网络适配器。

5) 您可以使用硬件负载平衡器来代替 Windows NLB。

 

下面是您需要知道的重要事项(即“要点须知”):

1) 如果您尝试对 Hyper-V 虚拟机进行负载平衡,则需要启用 MAC 地址欺骗(总也想不明白这个选项到底是干什么用的!):

在虚拟机来宾的网络适配器设置中,您将看到以下复选框:

图像

您还可以在 VMM 中的来宾虚拟机上配置此设置:

图像

2) 设置 NLB 后,您需要针对服务器名称(群集中的每个节点)以及 SharePoint 和 Web 内容服务器网站的应用程序池帐户的虚拟 NLB 服务器名称,将 SPN 添加到 Active Directory 中。您可以在命令窗口中使用 SetSPN.exe 执行此操作,如下所示:

SetSPN.exe -A HTTP/servername domain\username
SetSPN.exe -A HTTP/fullyqualifiedservername domain\username

其中,servername 是要为其创建 SPN 的服务器的名称,domain\username 是 Web 内容服务器网站应用程序池或 SharePoint 网站应用程序池被配置为的帐户。

因此,对于我将同一帐户 (contoso\svcsmdataaccess) 用于 SharePoint 和 Web 内容服务器网站的环境,我输入了以下命令:

SetSPN.exe –A HTTP/sp1 contoso\svcsmdataaccess

SetSPN.exe –A HTTP/sp1.contoso.com contoso\svcsmdataaccess

SetSPN.exe –A HTTP/sp2 contoso\svcsmdataaccess

SetSPN.exe –A HTTP/sp2.contoso.com contoso\svcsmdataaccess

SetSPN.exe –A HTTP/sp contoso\svcsmdataaccess

SetSPN.exe –A HTTP/sp.contoso.com contoso\svcsmdataaccess

 

如果您对两个应用程序池使用了不同的帐户,则需要对两个应用程序池帐户执行上述六个命令。

您只需要在 AD 中创建一次 SPN。不需要在每台服务器上分别运行此命令或执行类似操作。

 

3) 您需要将所有服务器上的 SharePoint 和 Web 内容服务器网站配置为 useAppPoolCredentials = True

可以通过转到 IIS 管理器并选择左侧导航窗格中的网站来执行此操作。

图像

双击配置编辑器。

在顶部的“节”下拉控件中,导航到 system.webServer/security/authentication/windowsAuthentication:

图像

将 useAppPoolCredentials 更改为 True:

图像

 

除此之外,该过程非常简单明了,TechNet 上有详细记录。

 

下面是我执行的步骤:

0) 将 SharePoint 作为 Web 场安装。在场中的一台 Web 服务器上安装 SharePoint 网站作为自助服务门户。SharePoint 自动负责将其部署到场中的其他 Web 服务器。在两台服务器上均安装了 Web 内容服务器。

1) 关闭了虚拟机,并向连接到现有 (DHCP) 网络适配器所在的同一外部网络的虚拟机添加了两个额外的网络适配器。

2) 如上所述,将新网络适配器配置为允许 MAC 欺骗。

3) 启动虚拟机。

4) 在 Windows 中将两台虚拟机的网络适配器重命名为“管理”和“NLB”,以阐明网络适配器的用途。

图像

5) 在两台虚拟机上安装了网络负载平衡器功能。(服务器管理器/功能 –> 添加功能)

6) 在第一个负载平衡器节点上,从“开始”–>“管理工具”打开了网络负载平衡管理器。

7) 右键单击左侧导航树中的顶级节点并选择“新建群集”。

8) 输入第一个节点的主机名称 (sp1.contoso.com) 并单击“连接”。

9) 选择 NLB 适配器并单击“下一步”。

10) 完成向导的其余部分,指定主机网络适配器的静态 IP 地址 (192.168.2.121)、群集的 IP 地址 (192.168.2.120) 以及群集的 DNS 名称 (sp.contoso.com)。

11) 登录到群集的第二个节点。启动网络负载平衡管理器。

12) 右键单击顶级树节点并选择“连接到现有群集”。输入群集第一个节点的名称 (sp1.contoso.com) 并单击“连接”。选择群集名称 (sp.contoso.com) 并单击“完成”。

13) 右键单击该群集并选择“向群集添加主机”。输入群集第二个节点的名称 (sp2.contoso.com) 并单击“连接”。选择 NLB 适配器并单击“下一步”。

14) 与以前一样,输入该群集节点的静态 IP 地址 (192.168.1.122)。

15) 最后,您的群集应如下所示:

图像

16) 为新 IP 地址创建 DNS 条目:

图像

注意:这还将显示 DHCP 网络适配器的 IP 地址(.109 和 .112)。

SP1.contoso.com – 192.168.2.120

SP1.contoso.com – 192.168.2.121

SP2.contoso.com – 192.168.2.122

 

17) 现在按上述方式配置 SPN。

18) 如上所述,在每个服务器上的每个网站(SharePoint 和 Web 内容服务器)上配置 useAppPoolCredentials = True。

19) 在所有 Web 服务器上从提升的命令提示符处运行 iisreset。

20) 最后一个技巧 – 您也可以配置 SharePoint 网站以便从经过负载平衡的 URL 获取 Web 内容服务器的内容,以防 SharePoint 服务器上运行的 Web 内容服务器不可用而 NLB 群集中其他位置的 Web 内容服务器可用。为此,请转到每台服务器上的 SharePoint 并双击“应用程序设置”。

 图像

将 SMPortal_WebContentServer_URL 设置从类似 https://SP1:85/ContentHost/ClientBin 的内容更改为 https://SP:85/ContentHost/ClientBin,其中 SP1:85 是您的 Web 服务器名称和端口,SP 是您的虚拟群集的名称。

 

希望这有所帮助。请在下面的评论中告诉我们这是否有帮助。

顺便说一下 – 您可以按照上面的相同过程操作(步骤 1-15),以便在您的 SM 管理服务器前面创建一个 NLB 群集!