7-nginx-keepalived配置主从双击热备
nginx的高可用解决方案
keepalive 是 VRRP 协议的完美实现, 通过vip(虚拟ip)来实现主从双击热备, 自动切换的高可用方案, nginx的主从是通过keepalived实现的
通过权重进行主从切换的
keepalived 是为ipvs开发的, 会自动执行健康检查, 如果需要给其他服务提供高可用, 需要舍弃健康检查, 并自己手写检查脚本添加到vrrp中
通常部署在2台服务器上, 一主一备, 一旦master检测出问题, 将自己切换为backup状态, 并通知另一个为master, 通过切换VIP实现
1, 安装keepalived, 多台nginx的服务器上分别安装
yum install keepalived
也可以通过本地安装包进行安装
最新版本 Version 2.0.6
$ wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz
$ tar -zxvf keepalived-1.2..tar.gz
$ cd keepalived-1.2.
$ ./configure --sysconf=/etc/ --with-kernel-dir=/usr/src/kernels/2.6.-573.8..el6.x86_64
$ make && make install
$ ln -s /usr/local/sbin/keepalived /sbin/
最后创建软连接是为了, service keepalived start 进行启动
配置开机启动: 目录可能不对, 在1.2.15的基础上直接修改的, 没有试验
cp /usr/local/sbin/keepalibed/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
cp /usr/local/src/keepalived/etc/sysconfig/keepalived /etc/sysconfig
dhmod +x /etc/init.d/keepalived
chkconfig --add keepalived
chkconfig keepalived on
2, 修改keepavlied配置
修改keepalived.conf
主机:
# 全局配置
global_defs {
notification_email {
test@.com # 发送的邮箱
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout
router_id LVS_MASTER
}
vrrp_script chk_http_port {
script "/home/keepalived/check_nginx_pid.sh"
interval #(检测脚本执行的间隔)
weight 2 # 权重
}
# 虚拟冗余luyou
vrrp_instance VI_1 {
#state MASTER
state BACKUP
nopreempt
#设置非抢占模式时,修改“state MASTER”为“state BACKUP”,添加“nopreempt“
interface bond0 # 网卡名
virtual_router_id 51 # 在一个网络中唯一
priority 100 # 优先级
advert_int 1 # 出问题, 优先级减少
authentication {
auth_type PASS # 心跳设置
auth_pass
}
track_script {
chk_http_port #(调用检测脚本)
}
virtual_ipaddress { # 虚拟ip地址
192.168.208.126 # 多个虚拟ip换行即可
}
}
从机配置:
global_defs {
notification_email {
test@.com
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout
router_id LVS_BACKUP
}
vrrp_script chk_http_port {
script "/home/keepalived/check_nginx_pid.sh"
interval #(检测脚本执行的间隔)
weight 2 # 权重, 从机可以小一点
}
vrrp_instance VI_1 {
state BACKUP
interface bond0
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
track_script {
chk_http_port #(调用检测脚本)
}
virtual_ipaddress {
192.168.208.126
}
}
主机和从机的配置值在权重上有所差别, 别的都一样, 另外看了一些博客好多配置的权重都一样, 没有测试
3, vim /etc/keepalived/keepalived.conf
或者拷贝过来:
cp $KEEP_HOME/etc/keepalived/keepavlied.conf /etc/keepalived/
#!/bin/bash
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
then
/usr/local/nginx/sbin/nginx
sleep
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
then
killall keepalived
fi
fi
4, 绑定虚拟ip, 就可以了
由于时间太久, 这次做补充, 没有找到原始的文档!!!!! 根据自己的vip进行修改
https://blog.csdn.net/huoyuanshen/article/details/68483188
ifconfig eth0: 166.111.69.100 netmask 255.255.255.0 up
keepalive 相关参数说明:
! Configuration File for keepalived global_defs {
notification_email {
admin@lvtao.net #设置报警邮件地址,可以设置多个,每行一个。 需开启本机的sendmail服务
}
notification_email_from admin@lvtao.net #设置邮件的发送地址
smtp_server 127.0.0.1 #设置smtp server地址
smtp_connect_timeout #设置连接smtp server的超时时间
router_id LVS_DEVEL #表示运行keepalived服务器的一个标识。发邮件时显示在邮件主题的信息
} vrrp_instance VI_1 {
state MASTER #指定keepalived的角色,MASTER表示此主机是主服务器,BACKUP表示此主机是备用服务器
interface eth0 #指定HA监测网络的接口
virtual_router_id #虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识。即同一vrrp_instance下,MASTER和BACKUP必须是一致的
priority #定义优先级,数字越大,优先级越高,在同一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级
advert_int #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication { #设置验证类型和密码
auth_type PASS #设置验证类型,主要有PASS和AH两种
auth_pass #设置验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
}
virtual_ipaddress { #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
10.0.0.148
}
} virtual_server 10.0.0.148 { #设置虚拟服务器,需要指定虚拟IP地址和服务端口,IP与端口之间用空格隔开
delay_loop #设置运行情况检查时间,单位是秒
lb_algo rr #设置负载调度算法,这里设置为rr,即轮询算法
lb_kind DR #设置LVS实现负载均衡的机制,有NAT、TUN、DR三个模式可选
persistence_timeout #会话保持时间,单位是秒。这个选项对动态网页是非常有用的,为集群系统中的session共享提供了一个很好的解决方案。
#有了这个会话保持功能,用户的请求会被一直分发到某个服务节点,直到超过这个会话的保持时间。
#需要注意的是,这个会话保持时间是最大无响应超时时间,也就是说,用户在操作动态页面时,如果50秒内没有执行任何操作,
#那么接下来的操作会被分发到另外的节点,但是如果用户一直在操作动态页面,则不受50秒的时间限制
protocol TCP #指定转发协议类型,有TCP和UDP两种 real_server 10.0.0.137 { #配置服务节点1,需要指定real server的真实IP地址和端口,IP与端口之间用空格隔开
weight #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值大小可以为不同性能的服务器
#分配不同的负载,可以为性能高的服务器设置较高的权值,而为性能较低的服务器设置相对较低的权值,这样才能合理地利用和分配系统资源
TCP_CHECK { #realserver的状态检测设置部分,单位是秒
connect_timeout #表示3秒无响应超时
nb_get_retry #表示重试次数
delay_before_retry #表示重试间隔
connect_port
}
}
real_server 10.0.0.139 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}
7-nginx-keepalived配置主从双击热备的更多相关文章
- Nginx+keepalived 高可用双机热备(主从模式/双主模式)
基础介绍负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行. 关于负载均衡介绍,可以参考:li ...
- haproxy/nginx+keepalived负载均衡 双机热备 邮件报警 实战及常见问题
Haproxy 做http和tcp反向代理和负载均衡keepalived 为两台 Haproxy 服务器做高可用/主备切换.nginx 为内网服务器做正向代理,如果业务需求有变化,也可以部分替代 ...
- Nginx+keepalived 高可用双机热备(主从模式)
环境:centos7.6 最小化安装 主:10.11.1.32 从:10.11.1.33 VIP:10.11.1.130 修改主节点主机名: hostnamectl set-hostname web_ ...
- Nginx+keepalived 脚本安装主从双机热备自动切换解决方案
Nginx+keepalived 脚本安装主从双机热备自动切换解决方案 2013-07-02 19:24:13 标签:filesnginx keepalived 原创作品,允许转载,转载时请务必以超链 ...
- keepalived配置主从备份
keepalived配置主从备份 keepalived是一个用于做双机热备(HA)的软件,常和haproxy联合起来做热备+负载均衡,达到高可用. 运行原理 keepalived通过选举(看服务器 ...
- Mysql + keepalived 实现双主热备读写分离【转】
Mysql + keepalived 实现双主热备读写分离 2013年6月16日frankwong发表评论阅读评论 架构图 系统:CentOS6.4_X86_64软件版本:Mysql-5.6.12 ...
- Jboss集群(五)--F5硬件负载均衡器双击热备 + Jboss集群终极实现
BIG/IP利用定义在其上面的虚拟IP地址来为用户的一个或多个应用服务器提供服务.因此,它能够为大量的基于TCP/IP的网络应用提供服务器负载均衡服务.BIG/IP连续地对目标服务器进行L4到L7合理 ...
- 使用Keepalived配置主从热备实现Nginx高可用(HA)
Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务 ...
- nginx:负载均衡实战(四)nginx+keepalived配置双机热备
1.下载安装 下载keepalived地址:http://www.keepalived.org/download.html 解压安装: tar -zxvf keepalived-.tar.gz 安装o ...
随机推荐
- kylin的clube合并后清理hbase中产生的相关历史表
kylin的clube合并后清理hbase中产生的相关历史表 kylin 的clube 历史的每次构建,都会产生一个hbase的表:虽然可以设置按照一定策略合并,但是合并后hbase 历史表不会被自动 ...
- 前台ajax请求一次,后台代码执行了两次
问题: 后台使用Django,前台发布文章时使用ajax方式,后台执行代码将data数据取出存入数据库 经过排查,是提交按钮type写成了submit,需要写成button,真是 修改后测试 代码执行 ...
- 在vs 调试进程中找不到 w3wp.exe 进程
问题如图所示: 解决办法: 1. 启动iis(internet information services)服务. 2. 打开左侧网站列表=> 右键点击自己配置的网站 => 点击管理网站 = ...
- CSS/CSS3
CSS/CSS3 选择器. 选择器 例子 例子描述 CSS 说明 .class .intro 选择 class="intro" 的所有元素. 1 #id #firstname 选择 ...
- 双缓冲队列解决WPF界面卡死
工作中的项目,CS客户端会通过MQ接收前端设备发送的信息,之前测试的时候,由于测试的数据不大,没有进行压力测试,软件可以正常工作,随着项目现场设备数量的增加,CS客户端从MQ中订阅的数据量不断增加,最 ...
- onsrcoll和scrollTop兼容与实现
对于onscroll事件的支持 各浏览器 document.document.body.document.documentElement 对象的 onscroll 事件的支持存在差异. 所谓的支持性存 ...
- 删除 iptables nat 规则
原文:https://www.cnblogs.com/hixiaowei/p/8954161.html 删除FORWARD 规则: iptables -nL FORWARD --line-number ...
- jzoj3363
JYY 来到了一个新的城市,为了和大家保持联系,第一件事就是办理新的手机号.JYY 对号码的要求很高,希望大家都能够顺畅地阅读手机号,因此 JYY 特别研究了地球人的电话号码阅读习惯,有如下重大发现 ...
- 手把手教你从零搭建Python数据分析环境
由于最近再做推荐系统的特征处理,需要借助一些工具来筛选特征.最初使用了R,R的安装很简单,而且API也很容易使用,直接就能出图.后来,发现很多人在python和R之间做选择,所以我也在两个工具间摇摆不 ...
- 数组内数据不使用for循环实现多个移动
题目: 有序数组中加入一个新的数据,需保持数组有序,如何操作? 方式A :for循环将后续数组依次后移. 方式B :内存拷贝 代码: /******************************** ...