一、Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合Nginx可以实现web前端服务的高可用。

二、基于上篇搭建好Nginx+Tomcat环境信息

Linux下Nginx+Tomcat配置反向代理

1、两台Linux机器地址为:

主机名    ip地址
node1    192.168.182.130
node2    192.168.182.129

2、在node1安装Keepalived

#下载目录
cd /usr/local/src/
#下载
wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz
#解压
sudo tar -zxvf keepalived-1.2.19.tar.gz
#切换目录
cd keepalived-1.2.19/
#编译
./configure --prefix=/usr/local/keepalived
#安装
make && make install
# 拷贝执行文件
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
#添加系统服务
chkconfig --add keepalived
#开机自启
chkconfig keepalived on

View Code

3、修改配置文件,需要根据个人机器信息配置

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalivedglobal_defs {}vrrp_script chk_health {script "[[ `ps -ef | grep nginx | grep -v grep | wc -l` -ge 2 ]] && exit 0 || exit 1"interval 1    #每隔1秒执行上述的脚本,去检查用户的程序ngnixweight -2
}vrrp_instance VI_1 {state MASTER  #指定A节点为主节点 备用节点上设置为BACKUP即可interface ens33  #绑定虚拟IP的网络接口virtual_router_id 51 ##VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组priority 100 #主节点的优先级(1-254之间),备用节点必须比主节点优先级低advert_int 1 #组播信息发送间隔,两个节点设置必须一样authentication { #设置验证信息,两个节点必须一致auth_type PASSauth_pass 1111}track_script { #心跳检测chk_health}virtual_ipaddress { #指定虚拟IP, 两个节点设置必须一样192.168.182.139/24}notify_master "/usr/local/nginx/sbin/nginx"notify_backup "/usr/local/nginx/sbin/nginx -s stop &&  /usr/local/nginx/sbin/nginx"notify_fault "/usr/local/nginx/sbin/nginx -s stop"
}

View Code

4、在node2安装Keepalived ,和2-3一致,其node2上的keepalived.conf内容,只需要修改state,interface,priority,virtual_ipaddress这四个地方就可以了

! Configuration File for keepalivedglobal_defs {}vrrp_script chk_health {script "[[ `ps -ef | grep nginx | grep -v grep | wc -l` -ge 2 ]] && exit 0 || exit 1"interval 1    #每隔1秒执行上述的脚本,去检查用户的程序ngnixweight -2
}vrrp_instance VI_1 {state BACKUP  #指定A节点为主节点 备用节点上设置为BACKUP即可interface ens33  #绑定虚拟IP的网络接口virtual_router_id 51 ##VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组priority 99 #主节点的优先级(1-254之间),备用节点必须比主节点优先级低advert_int 1 #组播信息发送间隔,两个节点设置必须一样authentication { #设置验证信息,两个节点必须一致auth_type PASSauth_pass 1111}track_script { #心跳检测chk_health}virtual_ipaddress { #指定虚拟IP, 两个节点设置必须一样192.168.182.139/24}notify_master "/usr/local/nginx/sbin/nginx"notify_backup "/usr/local/nginx/sbin/nginx -s stop &&  /usr/local/nginx/sbin/nginx"notify_fault "/usr/local/nginx/sbin/nginx -s stop"
}

View Code

5、测试

  a、启动和关闭keepalived

service keepalived start | stop

  启动node1和node2的上nginx启动keepalived,在node1上查看ip信息(ip add),会发现多了一个虚拟ip(192.168.182.139),关闭node1上的keepalived或者nginx,会发现这个虚拟IP已经漂移到node2这个机器上了,访问nginx时,是使用虚拟ip访问的。

虚拟IP漂移并没有执行的notify_master等所在的脚本,查了很久,也没有成功,不知道有没有大神知道。

yexiangyang

moyyexy@gmail.com


转载于:https://www.cnblogs.com/moy25/p/8687210.html

linux下初步实现Keepalived+Nginx高可用相关推荐

  1. Linux下部署lvs+keepalived实现高可用负载均衡

    lvs+keepalived是什么? keepalived工作原理 keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障. keepalive ...

  2. 搭建Keepalived+Nginx高可用负载均衡服务器

    一.服务器搭建策略 单机模式: 只有一台应用服务器,组成一个单机模式 优点:简单方便(搭建.运营.维护) 缺点:不能出故障(停电.断网.系统崩溃.硬件老化.性能瓶颈) 应用场景:小型项目(几十个人) ...

  3. keepalived+nginx高可用

    根据上面图片可以看出,两台机器均安装keepalived之后,如果124机器宕机了,那么117机器就会变成master,网页照样可以访问.下面正式介绍keepalived+nginx高可用安装使用方法 ...

  4. Linux下的5款主流高可用集群软件介绍

    Linux集群主要分成三大类:高可用集群(High Availability Cluster).负载均衡集群(Load Balance Cluster).科学计算集群(High Performance ...

  5. 【收藏】Keepalived+Nginx高可用配置(偏nginx配置)

    https://blog.csdn.net/hugolyl/article/details/78912243

  6. docker 部署nginx 使用keepalived 部署高可用

    一.体系架构 在Keepalived + Nginx高可用负载均衡架构中,keepalived负责实现High-availability (HA) 功能控制前端机VIP(虚拟网络地址),当有设备发生故 ...

  7. 【7W字长文】使用LVS+Keepalived实现Nginx高可用,一文搞懂Nginx

    往期文章一览 分布式会话与单点登录SSO系统CAS,包含完整示例代码实现 [15W字长文]主从复制高可用Redis集群,完整包含Redis所有知识点 使用LVS+Keepalived实现Nginx高可 ...

  8. keepalived高可用解决脑裂,nginx高可用配置详细篇

    第一章 keepalived介绍 keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点状态,后来又加入了可以实现高可用的VRRP功能.此,keepal ...

  9. 搭建Nginx高可用集群(keepalived+双机热备)

    一.Nginx高可用 首先了解一下什么是高可用,高可用是分布式系统架构中必须考虑的因素. 我们都知道,使用nginx的反向代理和负载均衡可以解决tomcat等web容器的单点故障以及高并发等问题. 反 ...

最新文章

  1. Calendar日历简单用法
  2. mongodb安装.
  3. 一只快乐的野指针_野酸枣
  4. 索引unusable|disable|enable
  5. java环境变量设置xp_java环境变量设置方法
  6. Maven精选系列--依赖范围、传递、排除
  7. Python批量拆分Excel文件中已合并的单元格
  8. win11如何取消开机自检 windows11取消开机自检的设置方法
  9. 2D 转换之 scale
  10. UI 自定义视图 ,视图管理器
  11. 拓端tecdat|R语言Lasso回归模型变量选择和糖尿病发展预测模型应用(含练习)
  12. Sharepoint lookup字段的关联列表查询
  13. 使用cache tier
  14. repo sync x509: certificate is valid for,外部过滤器失败,smudge过滤器lfs失败,cannot initialize work tree
  15. 美团2018校园招聘内推笔试代码分享
  16. (二)史玉柱:我的营销心得有感------主要关注网络游戏策划
  17. python 进化树_Python ete3有没有一种方法来扩展系统进化树的分支?
  18. TesterHome创始人思寒:如何从手工测试进阶自动化测试?十余年经验分享
  19. Flyme patchrom项目笔记
  20. 《统计学》笔记:第11章 一元线性回归

热门文章

  1. The Text Splitting (将字符串分成若干份,每份长度为p或q)
  2. C socket编程
  3. opencv-python 9.4 拆分及合并图像通道
  4. 用Tcl定制Vivado设计实现流程
  5. java web 心跳机制实现,基于javax的websocket服务端实现,含心跳机制
  6. STM32串口中断接收方式详细比较
  7. mpi4py多进程实例/举例
  8. 为什么我们要放弃win10 去使用deepinv20和ous呢
  9. pycharm用爱发电
  10. 史上最大的实体关系抽取数据集!清华大学自然语言处理团队发布 FewRel...