keepalived 整合 nginx
nginx配置可看之前博客
- 下载keepalived压缩包,并上传到/usr/local/src,并解压
- ./configure --prefix=/usr/local/keepalived,检查环境是否具备,如果不具备(一般是openssl)则安装对应软件
- make && make install
- 拷贝对应文件,到系统环境下
cp /usr/local/keepalived/sbin/keepalived /etc/init.d/
cp /usr/local/keepalived/sbin/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ - 给配置文件建立软连接(原因:keepalived,默认配置文件位置:/etc/keepalived/)
mkdir /etc/keepalived ;
ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf; - 给配置文件赋权限
chmod 644 /etc/keepalived/keepalived.conf - 修改默认配置 /etc/keepalived/keepalived.conf
global_defs {
router_id linux3 #主机名
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" ## 检测 nginx 状态的脚本路径
interval 2 ## 检测时间间隔
weight -20 ## 如果条件成立,权重-20
}
vrrp_instance VI_1 {
state BACKUP # 主用MASTER,备用 BACKUP
interface ens33 #网卡名
virtual_router_id 51 # 保持主备一致
priority 80 # 主的优先级要高于备的优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
## 将 track_script 块加入 instance 配置块
track_script {
chk_nginx ## 执行 Nginx 监控的服务
}
virtual_ipaddress {
172.16.153.127 #虚拟ip
}
}
- 在/etc/keepalived/目录下创建nginx_check.sh
用途:检查nginx是否启动,未启动则启动nginx,提供给keepalived使用
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
- 服务启停
启动:systemctl start keepalived
停止:systemctl stop keepalived
重启:systemctl restart keepalived
查看状态:systemctl status keepalived.service
查看日志:journalctl -xe
设置为开机自启动(不自启动 ):chkconfig keepalived on/off