keepalived安装 Nginx安装

配置keepalived #修改配置 vim /etc/keepalived/keepalived.conf

	#配置文件
	! Configuration File for keepalived

	global_defs {
	   #从服务器最改一下这个
	   router_id node1 #表示运行keepalived服务器的一个标识。发邮件时显示在邮件主题的信息
	}
	#监控服务.NGINX mysql等
	vrrp_script chk_nginx {
	    script "/usr/local/keepalived/check_nginx.sh"
	    #每2s检查一次
	    interval 2
	    #每次检查-20
	    weight -20
	}
	vrrp_instance VI_1 {
	    ##主从设置 MASTER/BACKUP  
	    state MASTER
	    #网卡名称
	    interface eth0
	    #同一个集群下这个 router_id是一样的
	    virtual_router_id 51
	    #本机的ip,需要修改
	    mcast_src_ip 192.168.100.10 
	    #优先级,从节点 配置,需要小于主节点
	    priority 100
	    #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
	    advert_int 1
	    #认证的密码
	    authentication {
	        auth_type PASS
	        #设定授权密码,密码相同的为一个集群
	        auth_pass yellowcong
	    }
	    #触发的脚本
	    track_script {
	        chk_nginx  #检测脚本,上面配置的
	    }
	    #虚拟ip地址
	    virtual_ipaddress {
	        192.168.0.100
	        192.168.0.101
	    }
	}

下面是脚本内容,用来进行nginx是否存活的监测 #创建并赋予权限 touch check_nginx.sh && chmod a+x check_nginx.sh

#编辑文件
vim check_nginx.sh

#################下面是内容####################
#!/bin/bash

COUNT=$(ps -C nginx --no-header |wc -l)

echo $COUNT

#判断Nginx 是否都挂掉了
if [ $COUNT -eq 0 ]
then
        #如果挂掉了,就启动nginx
        /usr/local/nginx/sbin/nginx
        echo "重启nginx"

        #等5秒钟后,再次查看是否 启动成功
        sleep 3

        #如果nginx没有启动起来,就直接干掉keepalived
        COUNT=$(ps -C nginx --no-header |wc -l)
        if [ $COUNT -eq 0 ]
        then
                echo "干掉keepalived"
                #如果killall命令不能使用,就需要安装psmisc工具了
                #yum install -y psmisc
                killall keepalived
        fi
fi

Nginx 配置 vim /usr/local/nginx/conf/nginx.conf #配置完成一个后,直接将另一个拷贝就可以了

#################配置的内容###############

#user  nobody;
#配置的线程数目和cpu处理器的核心数目一致
worker_processes  2;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    #负载均衡
    upstream webapp{
         server 192.168.100.11:8080 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.100.11:8081 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.100.10:8081 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.100.10:8081 weight=1 max_fails=2 fail_timeout=30s;
    }
    server {
        listen       80;
        server_name  localhost;

        #地址匹配
        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_set_header X-real-ip $remote_addr;
            proxy_pass http://webapp;
        }

        #错误页面
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}