![Apache 服务器负载分担设置](https://linux22.com/image/531446/Apache%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%B4%9F%E8%BD%BD%E5%88%86%E6%8B%85%E8%AE%BE%E7%BD%AE.png)
我正在设置三台不同的服务器,我将在其中放置我的代码。我希望这些服务器共享负载,这些是 Windows 2008 服务器。我希望以这样一种方式设置它们:请求由它们随机处理,负载共享。还有其他选择吗?
答案1
答案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 等)。