Apache 服务器负载分担设置

Apache 服务器负载分担设置

我正在设置三台不同的服务器,我将在其中放置我的代码。我希望这些服务器共享负载,这些是 Windows 2008 服务器。我希望以这样一种方式设置它们:请求由它们随机处理,负载共享。还有其他选择吗?

答案1

在它们前面放置一个反向代理进行负载平衡。基于硬件或软件。一些更流行的基于 Linux 的:

答案2

最简单的解决方案是在 DNS 中列出所有三个 IP 地址。DNS 服务器将在解析名称时轮换 IP 地址。这将实现粗略的负载平衡。

否则,您需要在服务器前面安装某种负载平衡器。这些负载平衡器可能比 DNS 提供更好的负载平衡。

使用会话进行负载平衡更加困难,并且有许多解决方案。

答案3

你的情况的一个好选择是Microsoft 应用程序请求路由,ARR。基本上它是一个 IIS 扩展,可执行第 7 层 (HTTP) 负载平衡。

通常,你会在 web 应用服务器前面有一台(或两台,以实现 NLB 高可用性)服务器:

                              |---[IIS app server]
                              |
--WAN---[IIS7.5/ARR Server]---|---[IIS app server]
                              |
                              |---[IIS app server]

pQd 的建议也非常合理。使用 ARR 的主要好处是它可以在 Windows 上运行。使用 ARR,您不需要混合 Windows 和 Linux 环境,这使得管理和安全修补更加简单。Apache 也可以在 Windows 上运行,但它不是原生应用程序,因为它的 GUI 不遵循 Microsoft 的做事方式等。

访问 O'Reilly 的在线书店并购买一本有关负载平衡的书籍可能会对您有所帮助。

设置方式,让请求由它们随机处理,并共享负载

是的,这是个好办法。请记住,所有服务器都必须能够访问会话数据(登录 cookie、购物车内容等),因此您需要一个共享会话数据存储(Microsoft StateServer、您的 SQL 数据库、Project Velocity 等)。

相关内容