我有 2 台 nginx 服务器,它们负责 1) 反向代理和 2) 两台 Web 服务器上的负载平衡。由于我无法向客户提供任何 nginx 机器的 IP,因此我考虑在 2 台 Nginx 机器上使用 VIP 进行 keepalived,它还会检查 Nginx 的故障转移。
我已取得的成果 1) 已成功在 2 台机器上安装 nginx,因此当我访问任何 nginx 服务器 IP 时,我都能够看到应用程序网页。即使我测试了故障转移,它也能正常工作。
2)我在两台机器上都安装了keepalived,并尝试使用以下配置生成VIP
vrrp_script chk_nginx {
script "killall -0 nginx"
interval 2
}
vrrp_instance VI_1 {
interface eth0:1
state MASTER
virtual_router_id 51
priority 100
unicast_src_ip server1_ip
unicast_peer {
server2_ip
}
virtual_ipaddress {
VIP
}
track_script {
chk_nginx
}
}
--> 因此,当我在 Web 浏览器中点击 VIP 时,出现以下错误:无法访问此站点
VIP 拒绝连接。请尝试:检查连接检查代理和防火墙
不确定我在这里遗漏了什么。有人能帮我解决这个问题吗?那么根据我的理解,当我点击 VIP 时,我应该看到应用程序网页吗?
问候 VG
答案1
嗯,问题出在 keepaived conf 上。我提到过配置中检查了错误的脚本。因此,为了进行测试,我首先删除了脚本 stenza,一切正常。然后我修改了脚本,并将 stenza 放在 keepalived.conf 中。因此,更具体地说,我的脚本如下所示
nginx.sh
if [ ! `ps -ec | grep nginx | awk '{ print $1 }'` ]; then service nginx start; fi;
之前,我在这个脚本中遗漏了分号。希望它能够对某些人有所帮助。