keepalived安装与配置_Nginx_Keepalived高可用配置

利用keepalived实现高可靠配置(HA)

2.1. 高可靠概念

HA(High Available):高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点。

2.2. 高可靠软件keepalived

keepalive是一款可以实现高可靠的软件,通常部署在2台服务器上,分为一主一备。Keepalived可以对本机上的进程进行检测,一旦Master检测出某个进程出

现问题,将自己切换成Backup状态,然后通知另外一个节点切换成Master状态。

2.3. keepalived安装

下载keepalived官网:http://keepalived.org

将keepalived解压到/usr/local/src目录下:tar -zxvf keepalived-1.2.19.tar.gz -C /usr/local/src

进入到/usr/local/src/keepalived-1.2.19目录:cd /usr/local/src/keepalived-1.2.19

开始configure(检查安装环境,并指定将来要安装的路径):./configure --prefix=/usr/local/keepalived

#编译并安装:make && make install

2.4. 将keepalived添加到系统服务中

拷贝执行文件cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

将init.d文件拷贝到etc下,加入开机启动项:cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived 

将keepalived文件拷贝到etc下:cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

创建keepalived文件夹:mkdir -p /etc/keepalived

将keepalived配置文件拷贝到etc下:cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf 

添加可执行权限:chmod +x /etc/init.d/keepalived

添加keepalived到开机启动:chkconfig --add keepalived chkconfig keepalived on

2.4. 配置keepalived虚拟IP

1.基本服务器宕机的主从切换配置

  两台nginx服务器,分别安装keepalived,配置/etc/keepalived/keepalived.conf

主从配置:

主nginx修改配置文件: /etc/keepalived/keepalived.conf

#MASTER节点

#全局配置global_defs {   notification_email {   #指定keepalived在发生切换时需要发送email到的对象,一行一个 XXX@XXX.com }  notification_email_from Alexandre.Cassen@firewall.loc   #指定发件人 smtp_server 192.168.200.1  #指定smtp服务器地址 smtp_connect_timeout 30    #指定smtp连接超时时间 router_id LVS_DEVEL #运行keepalived机器的一个标识}vrrp_instance VI_1 { state MASTER     #指定A节点为主节点 备分机上设置为BACKUP即可 interface eth0   #设置实例绑定的网卡 virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组(同一实例下virtual_router_id必须相同) priority 100     #主节点的优先级(1-254之间),备用节点必须比主节点优先级低 advert_int 1      #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒 authentication { #设置验证信息,两个节点必须一致 auth_type PASS  #主从服务器验证方式 auth_pass 1111 } virtual_ipaddress { #指定虚拟IP, 两个节点设置必须一样 192.168.232.203/24 #如果两个nginx的ip分别是192.168.232.201,,...205,则此处的虚拟ip跟它俩同一个网段即可,24子网掩码(255.255.255.0),可以多个虚拟IP,换行即可 }}

备nginx

修改备nginx下/etc/keepalived/keepalived.conf文件

配置备nginx时需要注意:需要修改state为BACKUP , priority比MASTER低,virtual_router_id和master的值一致

#BACKUP节点

global_defs {}vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 99 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.232.203/24 }}

#分别启动两台机器上的keepalived:tail /var/log/message 查看日志。

service keepalived start 

用ip addr查看主从:

主机:

备机:

此时如果主机宕机则(service keepalived stop)备机会顶替主机获得虚拟ip

首先将主机的keepalived关闭:

再次查看主机:ip addr

备机:

至此,基本服务器宕机的主从切换配置完毕

访问虚拟ip是不是还能轮询访问tomcat

2.基于nginx进程死掉的主从切换配置

 keepalived是通过检测keepalived进程是否存在判断服务器是否宕机,如果keepalived进程在但是nginx进程不在了那么keepalived是不会做主备切换,所以我们需要写

个脚本来监控nginx进程是否存在,如果nginx不存在就将keepalived进程杀掉。

在主nginx上需要编写nginx进程检测脚本(check_nginx.sh),判断nginx进程是否存在,如果nginx不存在就将keepalived进程杀掉,check_nginx.sh内容如下:

#!/bin/bash# 如果进程中没有nginx则将keepalived进程kill掉A=`ps -C nginx --no-header |wc -l` ## 查看是否有 nginx进程 把值赋给变量A if [ $A -eq 0 ];then ## 如果没有进程值得为 零 service keepalived stop ## 则结束 keepalived 进程fi

将check_nginx.sh拷贝至/etc/keepalived下,

注意修改/etc/keepalived/check_nginx.sh的可执行权限

修改主nginx的keepalived.conf,添加脚本定义检测:

注意下边红色标识地方:

#全局配置global_defs { notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个 XXX@XXX.com } notification_email_from miaoruntu@itcast.cn #指定发件人 #smtp_server XXX.smtp.com #指定smtp服务器地址 #smtp_connect_timeout 30 #指定smtp连接超时时间 router_id LVS_DEVEL #运行keepalived机器的一个标识}vrrp_script check_nginx { script "/etc/keepalived/check_nginx.sh" ##监控脚本 interval 2 ##时间间隔,2秒 weight 2 ##权重}vrrp_instance VI_1 { state MASTER #标示状态为MASTER 备份机为BACKUP interface eth0 #设置实例绑定的网卡 virtual_router_id 51 #同一实例下virtual_router_id必须相同 priority 100 #MASTER权重要高于BACKUP 比如BACKUP为99 advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒 authentication { #设置认证 auth_type PASS #主从服务器验证方式 auth_pass 8888 } track_script { check_nginx #监控脚本 } virtual_ipaddress { #设置vip 192.168.101.100 #可以多个虚拟IP,换行即可 }}

修改后重启keepalived

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java不可变类型_Java中的值类型:为什么它们不可变?

java不可变类型值类型不必是不变的。 但是他们是。 在上一篇文章中,我讨论了Java中指针与引用之间的区别以及如何传递方法参数(按值传递或按引用传递)。 这些与Java中尚不存在的值类型密切相关(尚未)。 John Rose&am…

六步创建TCP服务端

//六步创建TCP服务端 #include<iostream> #include<Windows.h> using namespace std;int main() {//初始化ws2_32.dllWORD ver MAKEWORD(2, 2);WSADATA wsaData;WSAStartup(ver, &wsaData);//对应WSACleanup的调用//1.建立一个socketSOCKET _sock ::socket(A…

计算机控制cs,计算机控制

计算机控制锯齿波形源码CODESEGMENTASSUME CS:CODESTART:MOV AX,8100H ;数据段MOV DS,AXMOV AX,7000H ;8251串口寄存器&#xff0c;存储空间 7000H:8000HMOV ES,AXXOR AL,ALWAVE:XOR DX,DX ;0832口地址 0000HOUT DX,ALINC ALMOV AH,AL;保存AL内容MOV DX,0…

返回路径平面上的间隙_裁切机的上刀下刀如何调整?

每天都在使用裁切机时&#xff0c;由于各种因素往往会出现上刀、下刀现象(也称凸刀、凹刀现象)&#xff0c;给后面的套准带来困难。在此小编对上刀、下刀现象的产生原因做一分析与总结。01千斤压力不够(1)机械压力弹簧弹力不够。此时必须增大压力&#xff0c;如果增大到最大位置…

spring-bean版本_如何模拟Spring bean(版本2)

spring-bean版本大约一年前&#xff0c;我写了一篇博客文章如何模拟Spring Bean 。 所描述的模式对生产代码几乎没有侵入性。 正如读者Colin在评论中正确指出的那样&#xff0c;基于Profile注释的间谍/模拟Spring bean是更好的选择。 这篇博客文章将描述这种技术。 我在工作中以…

四步创建TCP客户端

//四步简历TCP服务端 #include<iostream> #include<Windows.h> using namespace std;int main() {//初始化ws2_32.dllWORD ver MAKEWORD(2, 2);WSADATA wsaData;WSAStartup(ver, &wsaData);//对应WSACleanup的调用//1.建立一个socketSOCKET _sock ::socket(A…

pcb板材的tg是什么_做到这6点,PCB过回焊炉不会出现板弯及板翘!

【维文信PCBworld】在PCB板子过回焊炉容易发生板弯及板翘&#xff0c;大家都知道&#xff0c;那么如何防止PCB板子过回焊炉发生板弯及板翘&#xff0c;下面就为大家阐述下&#xff1a;1.降低温度对PCB板子应力的影响既然「温度」是板子应力的主要来源&#xff0c;所以只要降低回…

计算机编程试讲教案,2016教师资格证面试试讲高中信息技术教案:QBASIC分支结构程序...

更多真题资料及报考疑问请加老师微信66746005&#xff0c;或点击这里在线咨询教师资格证面试时间临近&#xff0c;推荐报名教师资格证面试网校高清课程(点击购买&#xff0c;随报随学&#xff0c;不限时间次数。免费试听)&#xff0c;来系统学习提升面试技能。关于教师资格证面…

java-ee-api_刷新器-Java EE 7概览

java-ee-api随着红帽JBoss企业应用平台7&#xff08;EAP 7&#xff09;的迫在眉睫&#xff0c;甚至WebLogic Server刚刚获得Java EE 7认证&#xff0c;我认为现在应该是时候对Java Enterprise Edition 7进行一些更新了。功能&#xff0c;并指向更多资源。 Java EE 7 –开发人员…

创建进程(CreateProcess)

下面来分享一下如何用C创建进程&#xff08;开发环境建议VS2017【宇宙第一IDE】&#xff09; /*以下为创建新的进程&#xff0c;以拉起记事本为例*/ #include <windows.h> #include <iostream> using namespace std; int main() {char TEST[] "notepad.exe…

层 数据仓库_小尝试:基于指标体系的数据仓库搭建和数据可视化

关于作者&#xff1a;小姬&#xff0c;某知名互联网公司产品专家&#xff0c;对数据采集、生产、加工有所了解&#xff0c;期望多和大家交流数据知识&#xff0c;以数据作为提出好问题的基础&#xff0c;挖掘商业价值。0x00 前言我将整理文章分享数据工作中的经验&#xff0c;因…

计算机中级职称报考入口,2020年9月计算机职称考试报名流程(附入口)

2020年9月计算机等级报名公告正在陆续公布&#xff0c;计算机等级考试网上怎么报名&#xff1f;小编为大家整理计算机等级报名流程如下&#xff1a;2020年9月计算机等级报名流程一、注册通行证考生登入报名网页后&#xff0c;点击“用户注册”按钮&#xff0c;根据网页提示&…

简单工厂抽象工厂工厂方法_让工厂美丽

简单工厂抽象工厂工厂方法每个名副其实的Java程序员都知道Factory Pattern 。 这是一种便捷&#xff0c;标准化的方法&#xff0c;它通过教一个组件如何捕鱼而不是将它们交给它们来减少耦合。 但是&#xff0c;在使用大型系统时&#xff0c;该模式确实会向系统添加很多样板代码…

枚举所有进程及其ID

#include<Windows.h>#include<TlHelp32.h> //声明快照函数的头文件#include<stdio.h>int main(int argc, char*argv[]){system("color 0A"); //设置底色PROCESSENTRY32 pe32; //声明该结构体变量//在使用这个结构前&#xff0…

内蒙古大学计算机组成原理实验,内蒙古大学计算机组成原理期末练习0

内蒙古大学计算机组成原理期末练习0 (4页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;9.9 积分第 1 页 共 4 页 《《计算机组成原理计算机组成原理》》期末练习期末练习 班级 专业 姓名 学号 编号 …

dev的编辑器不支持getchar吗_“两头婚兴起”:你支持不娶不嫁,孩子随父姓也随母姓吗?...

何为两头婚&#xff1f;简单来说就是男不娶&#xff0c;女不嫁&#xff0c;没有彩礼也没有嫁妆的说法。男女俩人结婚之后没有谁到谁家里之说&#xff0c;两夫妻过自己的小日子&#xff0c;与各自的原生家庭保持一定的联系。婚后生育两个孩子&#xff0c;一个随父姓&#xff0c;…

字符串操作之字符串拷贝功能实现

#include<iostream> using namespace std; //思路分析&#xff1a; //a.确定被拷贝的数组内存是否小于等于目标数组的内存大小 //b.拷贝数组 //c.目标数组最后一个字符为空字符(\0)//str1:被拷贝的数组 str2:目标数组 len:目标数组的长度 bool stringCopy(char* str1, ch…

2015年传智播客java_2015年的Java –重大事件

2015年传智播客java2015年是Java的一年&#xff0c;语言&#xff0c;平台&#xff0c;生态系统和社区继续主导着软件领域&#xff0c;只有Javascript对整个行业产生了类似的影响。 如果您错过了2015年的亮点&#xff0c;这里是发生的一些重大事件。 Java 20岁了&#xff0c;还…

vue 删除两个集合中相同的数据_vue.js如何删除数组里面的数据

vue.js如何删除数组里面的数据发布时间&#xff1a;2020-12-10 12:04:44来源&#xff1a;亿速云阅读&#xff1a;107作者&#xff1a;小新这篇文章主要介绍了vue.js如何删除数组里面的数据&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文…

字符串操作之字符串连接

/* 将str1与str2连接—->(将合成的字符串放入str1中) 思路分析: a. 确定str1的内存大小是否小于str1str2-1; b. 连接; c. 连接后的字符串最后一个为空字符(‘\0’)。 */ //str1-->存放最终连接字符串的数组 ,len--->str1的内存大小 #include<iostream> using na…