linux下安装keepalived (nginx高可用)

来源:互联网 发布:sql developer查询 编辑:程序博客网 时间:2024/06/02 06:15
1.下载
wget http://www.keepalived.org/software/keepalived-1.2.21.tar.gztar zxvf keepalived-1.2.21.tar.gzcd keepalived-1.2.21
安装依赖环境
yum -y install popt popt-devel popt-static openssl-devel kernel-devel libnl libnl-develyum install -y libnfnetlink-devel
执行
./configure --prefix=/usr/local/keepalived
编译和安装
make && make installmkdir /etc/keepalived##keepalived默认配置文件从/etc/keepalived下读取cp /usr/local/keepalived/sbin/keepalived /usr/sbin/##就一个二进制文件,直接拷贝过去即可,多的话就更改PATH吧cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/##脚本的额外配置文件读取位置cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/##启动脚本cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/##keepalived配置文件
修改配置文件,下面是我自己的配置文件(主)

global_defs {notification_email {893482108@qq.com              #接收警报的email地址,可以添加多个}notification_email_from admin@caicongyang.com  ###发件人地址smtp_server 127.0.0.1          ###发送邮件的服务器smtp_connect_timeout 30      ###超时时间router_id LVS_DEVEL      ####load balancer 的标识 ID,用于email警报}vrrp_script chk_http_port {script "/etc/check_nginx.sh" ####检测nginx状态的脚本路径interval 2weight 2}vrrp_instance VI_1 {state MASTER ############ 辅机为 BACKUPinterface eth0 ####HA 监测网络接口  此项默认为eth0,因为本人在虚拟机下做测试所以将其改为eth2,可以用ifconfingvirtual_router_id 51 #主、备机的 virtual_router_id 必须相同mcast_src_ip 192.168.134.128 ###本机IP地址priority 100 ########### 权值要比 back 高advert_int 1 #主备之间的通告间隔秒数authentication {auth_type PASS ###默认配置 主备切换时的验证 auth_pass 1111}track_script {chk_http_port ### 执行监控的服务}virtual_ipaddress {192.168.134.188 ####虚拟ip,vip的地址}}

backup机器配置文件
global_defs {notification_email {linuxidc@qq.com              #接收警报的email地址,可以添加多个}notification_email_from admin@caicongyang.com  ###发件人地址smtp_server 127.0.0.1          ###发送邮件的服务器smtp_connect_timeout 30      ###超时时间router_id LVS_DEVEL      ####load balancer 的标识 ID,用于email警报}vrrp_script chk_http_port {script "/etc/check_nginx.sh" ####检测nginx状态的脚本路径interval 2weight 2}vrrp_instance VI_1 {state BACKUP ############ 辅机为 BACKUPinterface eth2 ####HA 监测网络接口 注意,此项默认为eth0,因为本人在虚拟机下做测试所以将其改为eth2,可以先查看自己的网络端口virtual_router_id 51 #主、备机的 virtual_router_id 必须相同mcast_src_ip  192.168.134.131 ###本机IP地址priority 90 ########### 权值要比 back 高advert_int 1 #主备之间的通告间隔秒数authentication {auth_type PASS ###主备切换时的验证auth_pass 1111}track_script {chk_http_port ### 执行监控的服务}virtual_ipaddress { 192.168.134.188 ####虚拟ip,vip的地址}}

--配置完成后,需要写个检测的脚本,就是上面配置文件中,要执行的脚本,根据业务自己决定怎么写
这块主要是利用keealived监控nginx,实现高可用,所以脚本可以这么写
#!/bin/bash#auto check nginx processkillall -0 nginx  if [[ $? -ne 0 ]];then    /software/nginx-1.8.0/sbin/nginx    sleep 2    killall -0 nginx    if [[ $? -ne 0 ]];then      /etc/init.d/keepalived stop    fi  fi

如果没有进程则先试图重启nginx进程,2秒无法启动再停止服务,vip自动飘到backup机器上
启动服务 service keepalived start
注意:先启动master的服务,再启动backup服务

至此,配置完成,启动完成之后,可进行验证



原创粉丝点击