如何设置负载均衡的高可用性Apache集群
版本1.0
作者:Falko Timme
本教程将介绍如何设置提供高可用性的双节点Apache Web服务器集群。 在Apache集群的前面,我们创建了一个负载平衡器,可以在两个Apache节点之间拆分传入的请求。 因为我们不希望负载平衡器成为另一个“单点故障”,所以我们也必须为负载平衡器提供高可用性。 因此,我们的负载平衡器实际上由两个负载平衡器节点组成,它们使用心跳
监视彼此,并且如果一个负载平衡器发生故障,则另一个负载平衡器以静默方式接管。
与使用循环DNS相比,使用负载均衡器的优点是它负责web服务器节点上的负载,并尝试以较少的负载将请求定向到节点,并且还负责连接/会话。 许多Web应用程序(例如论坛软件,购物车等)会使用会话,如果您在Apache节点1上的会话中,则如果节点2突然发出请求,您将丢失该会话。 除此之外,如果其中一个Apache节点出现故障,则负载平衡器会将所有传入的请求都指向剩余的节点,这将不可能使用循环DNS。
对于此设置,我们需要四个节点(两个Apache节点和两个负载平衡器节点)和五个 IP地址:一个用于每个节点,一个虚拟IP地址将由负载平衡器节点共享并用于传入的HTTP请求。
我将在这里使用以下设置:
- Apache节点1:
webserver1.example.com
(webserver1
) - IP地址:192.168.0.101
; Apache文档根目录:/ var / www
- Apache node 2:
webserver2.example.com
(webserver2
) - IP地址:192.168.0.102
; Apache文档根目录:/ var / www
- 负载均衡器节点1:
loadb1.example.com
(loadb1
) - IP地址:192.168.0.103
- 负载均衡器节点2:
loadb2.example.com
(loadb2
) - IP地址:192.168.0.104
- 虚拟IP地址:
192.168.0.105
(用于传入请求)
看看http://www.linuxvirtualserver.org/docs/ha/ultramonkey.html上的图纸,了解这个设置如何。
在本教程中,我将为所有四个节点使用Debian Sarge 。 我假设您已经在所有四个节点上安装了基本的Debian安装,并且已经在webserver1
和webserver2
上安装了
Apache,其中/ var / www
是主要网站的文档根目录。
我想先说说这不是建立这样一个系统的唯一途径。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!
1在负载平衡器上启用IPVS
首先,我们必须在我们的负载平衡器上启用IPVS。 IPVS(IP虚拟服务器)在Linux内核中实现传输层负载平衡,所谓的第4层交换。
loadb1 / loadb2:
echo ip_vs_dh >> /etc/modules
echo ip_vs_ftp >> /etc/modules
echo ip_vs >> /etc/modules
echo ip_vs_lblc >> /etc/modules
echo ip_vs_lblcr >> /etc/modules
echo ip_vs_lc >> /etc/modules
echo ip_vs_nq >> /etc/modules
echo ip_vs_rr >> /etc/modules
echo ip_vs_sed >> /etc/modules
echo ip_vs_sh >> /etc/modules
echo ip_vs_wlc >> /etc/modules
echo ip_vs_wrr >> /etc/modules
然后我们这样做:
loadb1 / loadb2:
modprobe ip_vs_dh
modprobe ip_vs_ftp
modprobe ip_vs
modprobe ip_vs_lblc
modprobe ip_vs_lblcr
modprobe ip_vs_lc
modprobe ip_vs_nq
modprobe ip_vs_rr
modprobe ip_vs_sed
modprobe ip_vs_sh
modprobe ip_vs_wlc
modprobe ip_vs_wrr
如果您收到错误,那么很可能您的内核没有使用IPVS支持编译,您需要编译一个支持IPVS的新内核(或者安装具有IPVS支持的内核映像)。
2在负载平衡器上安装Ultra Monkey
Ultra Monkey是使用Linux操作系统上的开源组件在局域网上创建负载平衡和高可用性服务的项目; Ultra Monkey软件包提供了心跳
(由两个负载平衡器用于监视对方并检查另一个节点是否仍然存在)和ldirectord
(实际负载均衡器)。
要安装Ultra Monkey,我们现在必须编辑/etc/apt/sources.list
,并添加这两行(不要删除其他存储库):
loadb1 / loadb2:
vi /etc/apt/sources.list
deb http://www.ultramonkey.org/download/3/ sarge main |
之后我们这样做:
loadb1 / loadb2:
apt-get update
并安装Ultra Monkey:
loadb1 / loadb2:
apt-get install ultramonkey
如果您看到此警告:
¦ libsensors3 not functional ¦ |
你可以忽略它。
在Ultra Monkey安装过程中,您将被问到几个问题。 回答如下:
您要在启动时自动加载IPVS规则吗?
< - 不
选择一个守护进程方法。
< - 无