Nginx+keepalived双机热备(主从模式)
简单介绍:
Keepalived是Linux下面实现VRRP备份路由的高可靠性运行软件,能够真正做到
主服务器和备份服务器故障时IP瞬间无缝交接;
Keepalived的目的是模拟路由器的高可用;
Heartbeat或Corosync的目的是实现Service的高可用.
那heartbaet与corosync又应该选择哪个好?
corosync的运行机制更优于heartbeat,从heartbeat分离出来的pacemaker在以后的开发当中
更倾向于corosync,所以现在corosync+pacemaker是最佳组合.
环境说明:
master机器(master-node):10.0.0.5/172.16.1.5
slave机器(slave-node):10.0.0.6/172.16.1.6
公用的虚拟IP(VIP):10.0.0.3
网站URL:
svn-------dev.qingfeng.com/svn(10.0.0.8:801/svn)
svn web---dev.qingfeng.com/submin(10.0.0.8:801/submin)
网站------www.qingfeng.com(10.0.0.7:80&10.0.0.8:80)
oa--------oa.qingfeng.com(10.0.0.7:802&10.0.0.8:802)
反向代理总结:
多域名指向是通过虚拟主机的不同server实现;
同一域名的不同虚拟目录是通过每个server下面的不同location实现;
反向代理到后端的服务器需要在vhost/LB.conf下面配置upstream,
然后在server或location中通过proxy_pass引用.
我们的目的:
如果master主服务器的keepalived停止服务,slave从服务器会自动接管VIP对外服务;
一旦主服务器的keepalived恢复,会重新接管VIP.
这并不是我们需要的,我们需要的是当NginX停止服务,无法启动时,能够自动切换.
# ip addr add 10.0.0.3/24 dev eth0 label eth0:0
yum -y install keepalived
1.master的keepalived配置
cat /etc/keepalived/keepalived.conf
global_defs {
notification_email {
174646513@qq.com
}
notification_email_from 17461651@qq.com
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id lb01
} vrrp_script chk_http_port {
script "/service/scripts/chk_nginx.sh" # 通过脚本监测
interval 2 # 脚本执行间隔,每2s检测一次
weight -5 # 脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -5
fall 2 # 检测连续2次失败才算确定是真失败,会用weight减少优先级(1-255之间)
rise 1 # 检测1次成功就算成功,不修改优先级
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24 dev eth0 label eth0:1
} track_script {
chk_http_port # 这个设置不能紧挨着写在vrrp_script配置块的后面,否则nginx监控失效.
}
}
2.监测nginx状态的脚本
mkdir -p /service/scripts
cat /service/scripts/chk_nginx.sh
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
/application/nginx/sbin/nginx
sleep 2
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
/etc/init.d/keepalived stop
exit 1
fi
fi
chmod +x chk_nginx.sh
3.slave的keepalived配置
global_defs {
notification_email {
174646513@qq.com
}
notification_email_from 17461651@qq.com
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id lb02
}
vrrp_script chk_http_port {
script "/service/scripts/chk_nginx.sh"
interval 2
weight -5
fall 2
rise 1
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24 dev eth0 label eth0:1
}
track_script {
chk_http_port
}
}
4.总结:
测试机10.0.0.51
cat /etc/hosts
10.0.0.3 dev.qingfeng.com www.qingfeng.com oa.qingfeng.com
[root@db01 ~]# curl dev.qingfeng.com/svn/
this is the page of svn-10.0.0.8
[root@db01 ~]# curl dev.qingfeng.com/submin/
this is the page of submin-10.0.0.8
[root@db01 ~]# curl www.qingfeng.com
www-10.0.0.7:80
[root@db01 ~]# curl www.qingfeng.com
www-10.0.0.8:80
用ifconfig无法查看到虚拟ip时,可以用ip addr
无论master还是slave,当其中的一个keepalived服务停止后,vip都会漂移到keepalived还存活的节点上;
如果master上的nginx服务挂了,则nginx会自动重启,重启失败后会自动关闭keepalived,vip也会转移到slave上.
主从模式参考博客:https://www.cnblogs.com/kevingrace/p/6138185.html
Nginx+keepalived双机热备(主从模式)的更多相关文章
- Nginx+Keeplived双机热备(主从模式)
Nginx+Keeplived双机热备(主从模式) 参考资料: http://www.cnblogs.com/kevingrace/p/6138185.html 双机高可用一般是通过虚拟IP(漂移IP ...
- 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!
写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...
- Nginx+keepalived双机热备(主主模式)
之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置. 由之前的配置信息可知:master机器(master-node):103.110.98.14/19 ...
- Nginx+keepalived 双机热备(主主模式)
之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置. 由之前的配置信息可知:master机器(master-node):103.110.98.14/19 ...
- nginx + keepalived 双机热备
序 双机热备是指两台机器都在运行,但并非两台机器同时在提供服务. 当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,且切换的时间非常短. keepalived的工作原理是VRRP—— ...
- Nginx+keepalived双机热备(主从模式)
负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...
- Nginx+keepalived 双机热备(主从模式)
负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...
- Nginx+keepalived双机热备(主主模式)
IP说明: master机器(master-node):10.0.0.5/172.16.1.5 VIP1:10.0.0.3slave机器(slave-node): 10.0.0.6/172.16. ...
- Nginx+keepalived双机热备(默认路径安装)- 基础篇
负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...
随机推荐
- QT入门学习笔记1:为什么要选QT及QT软件下载
为什么选择QT? Qt突出的优势: ◆ Qt 是基于 C++ 的一种语言扩展(Extention) C/C++ 目前还是一种很多人都在学习的语言. Qt的好处就在于Qt本身可以被称作是一种 C++ 的 ...
- poj-2524 ubiquitous religions(并查集)
Time limit5000 ms Memory limit65536 kB There are so many different religions in the world today that ...
- Linux学习-RPM 软件管理程序: rpm
RPM 默认安装的路径 一般来说,RPM 类型的文件在安装的时候,会先去读取文件内记载的设定参数内容,然后将该数据用来比对 Linux 系统的环境,以找出是否有属性相依的软件尚未安装的问题. 若环境检 ...
- python偏函数使用
偏函数依托于python functools模块.
- 数据挖掘算法——Apriori
在上一篇数据挖掘入门算法整理中提到,Apriori算法是关联规则算法中使用最为广泛的算法,这次我们就来学习下该算法的基本知识. 一.算法概述 Apriori 算法是一种最有影响力的挖掘布尔关联规则的频 ...
- Selenium WebDriver-通过页面标题切换窗口
selenium webdriver可以通过获取页面标题,再跟据标题去切换浏览器窗口,代码如下: #encoding=utf-8 import unittest import time import ...
- Verlet Integration
Verlet Integration Verlet 积分法是一种用于求解牛顿运动方程的数值方法,被广泛运用于动力学模拟以及视频游戏中.尔莱算法的优点在于:数值稳定性比简单的欧拉方法高很多,并保 ...
- [办公软件篇][2]source-insight安装
http://jingyan.baidu.com/article/a3f121e4fe173ffc9052bbb0.html 注意看:同步代码
- PHP 格式化显示时间 date()函数
Y 4位数字年,y为2位数字,如99即1999年 m 数字月份,前面有前导0,如01.n 为无前导0数字月份 F 月份,完整的文本格式,例如 January 或者 March M 三个字母缩写表示的月 ...
- [Pandas技巧] 如何把pandas dataframe对象或series对象转换成list
import pandas as pd >>> df = pd.DataFrame({'a':[1,3,5,7,4,5,6,4,7,8,9], 'b':[3,5,6,2,4,6,7, ...