1、整体架构图如下

2、环境准备

今天所配置的是keepalived+nginx 的负载均衡

下载keepalived软件

[root@LB01 tools]# wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz

注意安装前检查内核的link文件

root@LB02 tools]# ll /usr/src/

total 8

drwxr-xr-x. 2 root root 4096 Sep 23  2011 debug

drwxr-xr-x. 3 root root 4096 Oct 19 02:03 kernels

lrwxrwxrwx. 1 root root 43 Oct 19 02:05 linux -> /usr/src/kernels/2.6.32-642.6.1.el6.x86_64/

安装keepalived之前,安装几个依赖包

yum install openssl-devel -y

yum install popt* -y

然后进行编译安装keepalived,前面介绍了安装过程,这里就不演示了

./configure得出下面的结果

Keepalived configuration

------------------------

Keepalived version    : 1.1.17

Compiler         : gcc

Compiler        : -g -O2

Extra Lib      : -lpopt -lssl -lcrypto

Use IPVS Framework   : Yes

IPVS sync daemon support : Yes

Use VRRP Framework    : Yes

Use LinkWatch      : No

Use Debug flags     : No

注意./configure之后的结果,没有错误就可以了

make && make install

之后规范配置、启动文件路径

/bin/cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/

/bin/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived -p

/bin/cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

/bin/cp /usr/local/sbin/keepalived /usr/sbin/

/etc/init.d/keepalived start

注:nginx负载均衡相关配置请参考前面的文章

LNMP架构应用实战—Nginx反向代理负载均衡配置

3、实战配置keepalived

[root@LB01 keepalived]# vi keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

abc@qq.com

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 1.1.1.1

smtp_connect_timeout 30

router_id LVS_3

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 19

priority 150

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.254/24

}

}

[root@LB02 keepalived]# vi keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

abc@qq.com

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server 1.1.1.1

smtp_connect_timeout 30

router_id LVS_6

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 19

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.254/24

}

}

[root@LB01 keepalived]# /etc/init.d/keepalived start

Starting keepalived:    [  OK  ]

[root@LB02 keepalived]# /etc/init.d/keepalived start

Starting keepalived    [  OK  ]

[root@LB01 keepalived]# ip add|grep 192.168.1.254

inet 192.168.1.254/24 scope global secondary eth0

[root@LB02 keepalived]# ip add|grep 192.168.1.254

测试访问

表明可以正常切换

现在我们模拟keepalived主宕机,再测试

[root@LB01 conf]# /etc/init.d/keepalived stop

Stopping keepalived:   [  OK  ]

[root@LB02 ~]# ip add|grep 254

inet 192.168.1.254/24 scope global secondary eth0

4、反向代理服务故障自动切换

如果实际生产环境中当keeplived主的服务器nginx服务宕机,但是主又有VIP,这时就出现无法访问的现象,因此可以做如下的配置,使得这种情况可自已切换

vi check_nginx.sh

#!/bin/sh

white true

do

PNUM=`ps -ef|grep nginx|wc -l`

#这里也可使用nmap 192.168.1.3 -p 80|grep open|wc -l来判断个数

if [ $PNUM -lt 3 ];then

/etc/init.d/keepalived stop >/dec/null 2>&1

kill -9 keealived >/dec/null 2>&1

kill -9 keealived >/dec/null 2>&1

fi

sleep 5

done

sh check_nginx.sh &

启动个守护进程进行检查(或者加入定时任务定时执行检查),如果nginx服务出现故障,就立马停掉keepalived的服务,让它自动切换到备节点上去,这样就实现了自动切换的工作

粉丝福利来了

请看下文

农历新年即将到来,物质生活是好了,但是我们的思想食粮也不能落后啊,这不,民工哥这次联合——华章科技

华章科技成立于1995年,是机械工业出版社华章公司创立最早的子品牌,专注于为计算机、电子工程等IT领域的专业读者提供学习解决方案。

为各位粉丝们带来了新年的福利

跟老男孩学Linux运维系列

资深运维架构实战专家及教育培训界顶尖专家十多年的运维实战经验总结

跟老男孩学Linux运维:核心系统命令实战

本书是一本较完整的、偏重实战的Linux命令图书,并非大而全而是小而精,很多命令讲解均取之于企业中解决问题的实战案例,并结合老男孩十几年的运维工作和教学工作进行了梳理。

跟老男孩学Linux运维:Shell编程实战

本书全面系统地讲解运维工作中Shell编程所需的知识点和Shell编程的各种企业级案例。实战性强,不仅讲解了Shell编程所涉及的各种核心技术点,还运用Shell编程针对整个企业网站集群架构中的多个网络服务进行了部署、优化、自动化运维及监控等环节的实践,并指导你细致掌握Shell编程的运维规范和方法。

跟老男孩学Linux运维:Web集群实战

本书系统讲解网站集群架构的框架模型以及各个节点的企业级搭建和优化。实战性强,不仅讲解了Web集群所涉及的各种技术,还针对整个集群中的每个网络服务节点给出解决方案,并指导你细致掌握Web集群的运维规范和方法。

购书链接:https://item.jd.com/12274751.html

送书规则如下

1、长按下方小程序扫码参与抽奖送出一本(核心系统命令)

2、在文未写出您与运维工作相爱相杀的故事,精选留言点赞第一名送出一本(shell编程实战)

3、在精选留言中随机选出一名幸运读者送出一本(WEB集群实战)

4、获奖的小伙伴在一个工作日内在公众号后台发送 手机号+姓名+收货地址,逾期则自动视为放弃

5、本次活动仅限公众号读者参加(留言越精彩越有机会被精选)

6、活动截止时间2018年2月2日12:30

需要参与活动的小伙伴可关注公众号在相关的文章后参加送书活动

Nginx+keepalived高可用配置实战(内附彩蛋)的更多相关文章

  1. nginx Keepalived高可用集群

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

  2. Nginx+Keepalived高可用集群应用实践

    Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...

  3. Nginx入门篇(七)之Nginx+keepalived高可用集群

    一.keepalived介绍 keepalived软件最开始是转为负载均衡软件LVS而设计,用来管理和监控LVS集群系统中各个服务节点的状态,后来又加入了可实现高可用的VRRP功能.所以Keepali ...

  4. 使用Ansible实现nginx+keepalived高可用负载均衡自动化部署

    本篇文章记录通过Ansible自动化部署nginx的负载均衡高可用,前端代理使用nginx+keepalived,端web server使用3台nginx用于负载效果的体现,结构图如下: 部署前准备工 ...

  5. Nginx知多少系列之(十四)Linux下.NET Core项目Nginx+Keepalived高可用(主从模式)

    目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.负载均衡策略 8.加权轮询(round rob ...

  6. Nginx+keepalived(高可用主备模式)

    Nginx+keepalived(高可用主备模式) 环境:centos6.7 准备:两台服务器(虚拟机).两台应用(Tomcat).Nginx.keepalived server1:192.168.2 ...

  7. Nginx+keepalived(高可用双主模式)

    Nginx+keepalived(高可用双主模式) tips:前面已经介绍了nginx+keepalived高可用主从模式,今天补充下高可用的双主模式,均可以作为主机使用 server1:192.16 ...

  8. nginx+keepalived 高可用方案

    nginx+keepalived 高可用方案 准备工作 192.168.157.11 192.168.157.12 安装nginx 跟新yum源文件 rpm -ivh http://nginx.org ...

  9. Nginx+keepalived 高可用双机热备(主从模式/双主模式)

    基础介绍负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行. 关于负载均衡介绍,可以参考:li ...

随机推荐

  1. Scala抽象类型

    package big.data.analyse.scala import scala.io.{BufferedSource, Source} /** * 抽象类型 * Created by zhen ...

  2. mssql sqlserver 禁止删除数据表中指定行数据(转自:http://www.maomao365.com/?p=5323)

    转自:http://www.maomao365.com/?p=5323 摘要:下文主要讲述,如何禁止删除数据表中指定行数据 最近收到用户一个需求,禁止所有人删除”表A”中,ID 为1.2.3.4.5的 ...

  3. mcelog用法详解

    手动启动mcelog方法: # mcelog --daemon Run mcelog in daemon mode, waiting for errors from the kernel. 后台服务启 ...

  4. Linux CFS调度器之pick_next_task_fair选择下一个被调度的进程--Linux进程的管理与调度(二十八)

    1. CFS如何选择最合适的进程 每个调度器类sched_class都必须提供一个pick_next_task函数用以在就绪队列中选择一个最优的进程来等待调度, 而我们的CFS调度器类中, 选择下一个 ...

  5. 系统休眠(System Suspend)和设备中断处理

    一.设备IRQ的suspend和resume 本小节主要解决这样一个问题:在系统休眠过程中,如何suspend设备中断(IRQ)?在从休眠中唤醒的过程中,如何resume设备IRQ? 一般而言,在系统 ...

  6. LeetCode算法题-Ugly Number(Java实现-四种解法)

    这是悦乐书的第199次更新,第208篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第64题(顺位题号是263).编写一个程序来检查给定的数字是否是一个丑陋的数字.丑陋的数 ...

  7. February 17th, 2018 Week 7th Saturday

    The happiest part of a man's life is what he passes lying awake in bed in the morning. 人生一大乐事莫过去早上醒来 ...

  8. reportComplaints.js: Uncaught TypeError: Cannot read property 'message' of undefined

    vonic 中遇到这么个问题, 一直提示我未定义, 可是明明有定义 var tab={ message:{ number:'', title:'' } } var id= { template: '# ...

  9. Java同步(Synchronization)

    前言 线程间的通信主要通过共享对字段的访问和对象引用字段的引用,可能会产生两种错误,线程干扰和内存一致性错误.Java的同步就是防止这些错误,但当多个线程访问同一资源会导致线程执行缓慢,甚至暂停执行. ...

  10. 【Teradata】 TPT基础知识

     1.TPT Description Teradata Parallel Transporter (TPT) is client software that performs data extract ...