博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
keepalived+Nginx实现高可用集群
阅读量:6632 次
发布时间:2019-06-25

本文共 2848 字,大约阅读时间需要 9 分钟。

配置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/bashCOUNT=$(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        fifi

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;        }    }}

转载于:https://blog.51cto.com/12843522/2072114

你可能感兴趣的文章
使用 Excel Services ,结合 Analysis Services 在 SharePoint 中发布报表
查看>>
SQL Server数据导入导出技术概述与比较
查看>>
format的用法
查看>>
DHCPv6 server port and DHCPv6 client port
查看>>
BitmapFactory.Options避免 内存溢出 OutOfMemoryError的优化方法
查看>>
Python中通过Image的open之后,去show结果打不开bmp图片,无法正常显示图片
查看>>
DNGuard 免费的DotNet加密保护工具 V1.0
查看>>
编程中的命名设计
查看>>
easyui form validate总是返回false原因
查看>>
在(CListView)列表视图中添加右键菜单的方法
查看>>
解决IE6-IE7下li上下间距
查看>>
聚集索引更新后会不会马上重新排序
查看>>
幸运大抽奖
查看>>
Post请求
查看>>
Java排序算法(三):直接插入排序
查看>>
Python 列表 min() 方法
查看>>
【死磕jeesite源码】Jeesite配置定时任务
查看>>
TBluetoothLEDevice.UpdateOnReconnect
查看>>
poj3517
查看>>
iphone http下载文件
查看>>