nginx+keepalived高可用

nginx+keepalived高可用

原理:

keepaived通过脚本去判断ng的存活状态,通过关闭自身进程去实现vip地址漂移

keepalived也可实现其他服务或多个服务的高可用,如mysql集群等

一、安装部署nginx

1、解压缩、进入安装目录

tar -zxvf nginx.tar

cd ./nginx

2、执行环境检查脚本,make编译安装

./configure

make && make install

2.1、故障排除

2.1.1、编译安装出现PCRE的错误

yum install pcre ; yum install pcre-devel*

2.1.2、执行./configure 编译环境错误

yum install gcc gcc-c++

2.1.3、安装出现zlib的错误

yum install zlib ; yum install zlib-devel*

3、编写keepalived所用的nginx存活检测脚本
vim check_nginx.sh

count=$(ps -ef |grep nginx |egrep -cv "grep|$$")

if [ "$count" -eq 0 ];then

systemctl stop keepalived

fi

 

4、编写nginx.conf文件,做反向代理和负载均衡(用于测试)
http {
upstream nacos-cluster {
server 192.168.0.3:8848;
server 192.168.0.4:8848;
server 192.168.0.5:8848;
}

  server {
  listen       80;
  server_name  localhost;

    location /nacos {
    proxy_pass http://nacos-cluster;
    }
  }
}

二、安装部署keepalived,集群内机器都要安装

1、配置本地镜像yum源,安装keepalived

yum install keepalived -y

2、编辑配置文件
vim /etc/keepalived/keepalived.conf

#注释以下这条,否则无法ping通虚拟ip地址

#vrrp_strict

#增加vrrp_script,定义vrrp的脚本check_nginx

vrrp_script check_nginx {

script "/usr/local/nginx/check_nginx.sh"      #上面所写的用于检测nginx存活的脚本的路径

}

#修改vrrp_instance中注释的部分

vrrp_instance VI_1 {
state BACKUP/MASTER                          #此处指定节点为master或backup,由优先级区分
interface ens33         #网卡名
virtual_router_id 51                           #集群内机器都为统一的router id
priority 90   #优先级,MASTER为100, BACKUP为90,如有多个backup则优先级递归缩减
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100         #配置虚拟IP,集群内机器都配置统一虚拟ip
}
track_script {   #跟踪脚本,会调用此脚本
check_nginx
}
}

三、启动,测试

1、先启动nginx

./nginx/sbin -c ./nginx/conf/nginx.conf

2、启动keepalived

systemctl start keepalived

3、ip addr查看是否创建成功vip

注:ifconfig查看不到

2: ens33: <BROADCAST,MULTICAST,UP,LOWERUP> mtu 1500 qdisc pfifofast state UP group default qlen 1000

link/ether 00:0c:29:bf:35:ca brd ff:ff:ff:ff:ff:ff

inet 192.168.1.133/24 brd 192.168.1.255 scope global noprefixroute dynamic ens33

validlft 1285sec preferredlft 1285sec

inet 192.168.1.100/32 scope global ens33

4、关闭nginx测试IP地址漂移

kill -9 "nginx-pid"

ssh root@backup

ip addr #如有vip则漂移成功

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值