nginx负载均衡高可用_第1页
nginx负载均衡高可用_第2页
nginx负载均衡高可用_第3页
nginx负载均衡高可用_第4页
nginx负载均衡高可用_第5页
免费预览已结束,剩余7页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、传智播客Java学院 传智.入云龙1 nginx负载均衡高可用1.1什么是负载均衡高可用nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability )监控程序,通过传送诸如"I am alive ”这样的信息来监控对方的运 行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份管理器又从主管理器收到“I am alive ”这

2、样的信息时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。1.2 keepalived+nginx实现主备1.2.1 什么是 keepalivedkeepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。Keepalived的作用是检测 web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的 web服务器从系统中剔除,当 web服务器工 作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需 要人工干涉,需要人工做的只是修复故障的web服务器。122 keepaliv

3、ed 工作原理keepalived 是以 VRRP协议为实现基础的,VRRP全称 Virtual Router Redundancy Protocol, 即虚拟路由冗余协议。虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup, master上面有一个对外提供服务的vip ( VIP = Virtual IP Address,虚拟IP地址,该路由器所在局域网内其他机器 的默认路由为该 vip), master会发组播,当backup收不到VRRP包时就认为 master宕掉了, 这时就需要根据 VRRP

4、的优先级来选举一个 back up当master。这样的话就可以保证路由器 的高可用了。keepalived主要有三个模块,分别是 core、check和VRRP。core模块为keepalived的核 心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。VRRP模块是来实现VRRP协议的。详细参考:Keepalived权威指南中文.pdf1.2.3 keepalived+nginx 实现主备过程123.1初始状态123.2主机宕机123.3主机恢复124高可用环境两台 nginx,主一备:192.168.101.3 和 192.168.10

5、1.4两台 tomcat 服务器:192.168.101.5、192.168.101.61.2.5 安装 keepalived分别在主备nginx上安装keepalived,参考"安装手册”进行安装:一安装包四keepalLwd安装手册矗1.2.6 配置 keepalived126.1 主 nginx修改主 nginx 下/etc/keepalived/keepalived.conf 文件! Con figurati onkee palived#全局配置global_defs notification_email #指定keepalived在发生切换时需要发送email到的对象,一行

6、一个#指定smtp服务器地址#指定smtp连接超时时间#运行keepalived机器的一no tificati on _email_from# 指定发件人#smtp_server XXX.smt #smtp_c onn ect_timeout 30router_id LVS_DEVEL个标识vrrp_in sta nee VI_1 state MASTERin terface ethOvirtual_router_id 51 priority 100 advert_ int 1 位是秒#标示状态为MASTER备份机为BACKUP#设置实例绑定的网卡#同一实例下virtual_router_id

7、必须相同#MASTER权重要高于 BACK UP比如BACKUP为99#MASTER与 BACKUP负载均衡器之间同步检查的时间间隔,单authe nticati on auth_t ype P ASS auth_ pass 8888virtual_ ip address 192.168.101.100 #设置认证#主从服务器验证方式#设置vip#可以多个虚拟IP,换行即可126.2 备 nginx修改备 nginx 下/etc/keepalived/keepalived.conf 文件配置备 n gi nx 时需要注意:需要修改 state 为 BACK UP , priority 比 MA

8、STER低,virtual_router_id 和master的值一致! Con figurati onkee palived#全局配置global_defs notification_email #指定keepalived在发生切换时需要发送email到的对象,一行一个#指定发件人#smtp_server XXX.smt #smtp_c onn ect_timeout 30 router_id LVS_DEVEL 个标识#指定smtp服务器地址#指定smtp连接超时时间#运行keepalived机器的一vrrpin sta nee VI_1 state BACK UP in terface

9、ethO virtual_router_id 51 p riority 99 advert_ int 1位是秒authe nticati on auth_t ype P ASS auth_ pass 8888 virtual_ ip address 192.168.101.100#标示状态为MASTER备份机为BACK UP#设置实例绑定的网卡#同一实例下virtual_router_id必须相同#MASTER权重要高于BACK UP比如BACKUP为99#MASTER与 BACKUP负载均衡器之间同步检查的时间间隔,单#设置认证#主从服务器验证方式#设置vip#可以多个虚拟IP,换行即可no

10、tification email from1.2.7测试主备 nginx 都启动 keepalived 及 nginx。 service kee palived start./nginx127.1初始状态查看主nginx的eth0设置: vip绑定在主 nginx的eth0上。rooigserverOl Jbin# /sbin/ip add ahov ethO2: eLhO: <ER0iDCJL5T,MCLT:CA3T,LOWER DP? jfLu 1500 idlac pnro fdaL abfiLe UHKWCWN qlen LOOO ILnlt/etiiei CD: 0c;29;d

11、9:47:5e brtl ff: ff :ff :ffiMt 1監J閃.:LCn.*24 brtl L%.:US.L0L”255 3門胆 global ethOI inet 152,166.101,100/32 scope globil -thO |xnetfei less: : Dc:±17Ei/t4l tcoo« ixnkvalid_Ift forever prtferredlft forever查看备nginx的ethO设置:vip没有绑定在备 nginx的eth0上。访问 ,可以访问。1.2.7.2主机宕机将主nginx的keepalived停止或将主 nginx关

12、机(相当于模拟宕机),查看主nginx的ethO :没有绑注意这里模拟的是停止keepalived进程没有模拟宕机,所以还要将nginx进程也停止表示主nginx服务无法提供。查看备nginx的eth0 :vip已经漂移到备nginx。访问 ,可以访问。127.3主机恢复将主 nginx 的 keepalived 禾R nginx 者P启动。 查看主nginx的eth0 : 查看备nginx的eth0 : vip漂移到主nginx。查看备nginx的ethO : ethO没有绑定vipLrootQaerverOl teepfllived 4 /abin/ip Add shat et2iQ2:

13、mo: <BEOAIX:ASr,HOITICAST,UP,LO¥EEJIP> icu 1503 (jdiac pfifo_fa3CITHHKOHH qlen IQOQlink/flther OOiOc:2g:5c:e3:cA brd ffiffiff-inet 192*160.101-4724 trd3cap? global ethOiiiet fe30: :20c: 29ff :fe5c;83cB/64 a cope linkforever preferreiLft forever访问:,正常访问。注意:主nginx恢复时一定要将 nginx也启动(通常nginx启动要

14、加在开机启动中),否则即 使vip漂移到主nginx也无法访问。1.2.8解决nginx进程和keepalived不同时存在问题128.1问题描述keepalived是通过检测 keepalived进程是否存在判断服务器是否宕机,如果keepalived进程在但是nginx进程不在了那么 keepalived是不会做主备切换,所以我们需要写个脚本来 监控nginx进程是否存在,如果nginx不存在就将keepalived进程杀掉。128.2 n ginx进程检测脚本在主nginx上需要编写nginx进程检测脚本(check_nginx.sh),判断nginx进程是否存在, 如果nginx不存在

15、就将 keepalived进程杀掉,check_nginx.sh内容如下:#!/bi n/bash#查看是否有nginx进程把值赋给变量A #如果没有进程值得为零#则结束 keepalived进程#如果进程中没有 nginx则将keepalived进程kill掉 A='ps -C nginx -no-header |wc -I'if $A -eq 0 ;the nservice kee palived stopfi将 check_nginx.sh 拷贝至 /etc/keepalived 下,脚本测试:将 nginx 停止,将 keepalived 启动,执行脚本:sh /etc

16、/keepalived/check_nginx.sht&atgaerveeOl keepalive-d# sh /etc/keepal 1 ved/e.lc_rLgiwt.ah 惮止teepalived:礁总从执行可以看出自动将keepalived进程kill掉了。128.3 修改 keepalived.conf修改主nginx的keepalived.conf,添加脚本定义检测: 注意下边红色标识地方:#全局配置global_defs notification_email #指定keepalived在发生切换时需要发送email到的对象,一行一个#指定smtp服务器地址#指定smtp连

17、接超时时间#运行keepalived机器的一no tificati on _email_from# 指定发件人#smtp_server XXX.smt #smtp_c onn ect_timeout 30router_id LVS_DEVEL个标识vrrp _scri pt check_ nginx scri pt "/etc/kee palived/check_ ngin x.sh" in terval 2weight 2vrrp_in sta nee VI_1 state MASTER in terface ethO#监控脚本#时间间隔,2秒#权重virtual_rou

18、ter_id 51 priority 100 advert int 1#标示状态为MASTER备份机为BACKUP#设置实例绑定的网卡#同一实例下virtual_router_id必须相同#MASTER权重要高于 BACK UP比如BACKUP为99#MASTER与 BACKUP负载均衡器之间同步检查的时间间隔,单位是秒#设置认证#主从服务器验证方式authe nticati on auth_t ype P ASS auth_ pass 8888#监控脚本track_scri pt check_ nginx#设置vip#可以多个虚拟IP,换行即可virtual_ ip address 192.168.101.100修改后重启keepalived128.4测试keepalived、nginx 全部启动。回到负载均衡高可用的初始状态,保证主、备上的 停止主nginx服务 观察keepalived日志:tail -f /var/log/kee palived .logeftep

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论