网络负载平衡 - 两个站点使用同一服务器

网络负载平衡 - 两个站点使用同一服务器

我们不得不想出一个解决方案,在白天发布我们的内联网应用程序,同时保持 100% 的正常运行时间。这是因为我们在白天进行构建,并且需要在同一天发布高优先级的错误修复。

向我建议的一个选项正在使用同一服务器上的两个站点之间的网络负载平衡,这对于我们的需求来说确实是一个很好的解决方案(我们买不起另一台具有相同硬件的服务器,对于我们的设置来说它们的价格要 5,000 英镑以上)。

所以我看了一下本文其中规定如下:

为了在 Web 场中的不同 Web 服务器之间维护会话状态,IIS 元数据库中的网站应用程序路径(例如 \LM\W3SVC\2)在 Web 场中的所有 Web 服务器中都应该相同。

这是一个问题,因为应用程序路径将如果同一网站在同一台服务器上进行 NLB,则情况会有所不同。我们需要维护两个站点(而不是 Web 服务器)之间的会话状态,否则我们将收到大量愤怒用户的电话。

那么,我们可以在一台使用 NLB 并能维护所有状态的服务器上设置两个站点吗?顺便说一下,这两个站点是完全相同的,只有一个站点是最近为修复错误而构建的。

编辑 (解决了)

因此,我就开始四处寻找本文。它描述了在 web.config 中使用选项时出现的问题SQLServersessionState它运行良好,除了一件事;会话数据不再存储,这破坏了我们的所有安全性。在Session_Start我的 Global.asax 文件中,我有一些 DB 调用代码,它设置会话数据,这些数据用于整个内部网站,以便快速访问用户详细信息。

<sessionState mode="SQLServer" sqlConnectionString="Data Source=localhost;Integrated Security=True" />

是因为数据库访问问题还是因为sessionState

编辑 编辑

好吧,我想我在尝试了身份验证后没有重新启动 Web 服务,这导致它中断。所以我最不需要知道如何在指向同一位置的同时在网站之间切换。假设我们有一个 URLhttp://我的公司内部网/指向“CompanyIntranet1”,并且在 IIS 中我们还有一个“CompanyIntranet2”的站点,我们如何获得http://我的公司内部网/指向“CompanyIntranet2”?

答案1

负载平衡可能不是最佳解决方案。使用 SQL Server 上的会话状态此修改您可以在应用程序之间共享会话。然后,您可以在 IIS 上使用两个应用程序文件夹创建网站。使用简单的 HttpModule,您可以根据需要在它们之间切换。

答案2

您是否考虑过在同一台服务器上的虚拟机上运行网站?这意味着网站不会互相干扰,负载平衡和共享状态可以以更标准化的方式工作,如果您有足够的预算来运行 2 台机器,那么将其转移到不同的物理服务器将很容易。

相关内容