Nginx 与 keepalived

Nginx 与 keepalived

我有 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;

之前,我在这个脚本中遗漏了分号。希望它能够对某些人有所帮助。

相关内容