我有两台服务器,都安装了 Apache httpd,且配置相同,分别为 Server1 和 Server2。我想为这些服务器创建主动和被动设置。
- 服务器1(lbserver.my.com)IP:192.168.10.88(活动)
- 服务器2(lbserver.my.com)IP:192.168.10.89(被动)
Server1 应该响应 http 请求。如果 Server1 发生故障,则 Server2 应该成为活动服务器并响应 http 请求。有人能建议如何实现这一点吗?我尝试在两台服务器上都配置了 keepalived,它们的虚拟 IP 均为:192.168.20.90,但是我无法在 keepalived.conf 中检查 httpd 是否在 Server1 上运行。被动服务器(即 Server2)仅在 Server1 脱离网络时才响应 http 请求。我在 keepalived.conf 中的配置如下。
vrrp_script chk_haproxy{
script "killall -0 httpd"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.90
}
track_script{
chk_haproxy
}
}
我也尝试使用脚本“pidof httpd”
我希望被动服务器在 server1 上的 httpd 发生故障时开始响应。有人能就此提出建议吗?如果此设置需要遵循任何其他方法,也请纠正我。任何帮助都将不胜感激
答案1
我建议使用 Pacemaker 和 Corosync。在很多人看来,这是事实上的 Linux 集群堆栈。设置过程稍微复杂一些,但收益更大。
在单个堆栈帖子中解释可能有点太多了,所以我建议使用 Pacemaker HA Apache 集群作为关键字进行 Google 搜索。
或者,您可以跳转到 Freenode (IRC) 并进入 #clusterlabs 并在那里寻求一些帮助。