nginx + keepalive 实现HA

标签: nginx keepalive ha | 发表时间:2013-12-22 01:10 | 作者:u011386690
出处:http://blog.csdn.net

nginx + keepalive - zhuzhu - 五事九思  (大连Linux主机维护)
 
一、拓扑环境:
 
主nginx负载均衡器 192.168.166.203
辅nginx负载均衡器 192.168.166.177
VIP地址 192.168.166.178
 
http://www.keepalived.org/download.html
tar -zxvf keepalived-1.2.1.tar.gz
cd keepalived-1.2.1
./configure --prefix=/usr/local/keepalived --sysconf=/etc
make && make install

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /bin/
chkconfig --add keepalived
chmod 755 /etc/init.d/keepalived
chkconfig keepalived on
service keepalived start
 
二.修改配置文件为以下内容: [master slave]
MASTER
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
 notification_email {
  xxx@xxx.com
}
notification_email_from xxx@xxx.com
smtp_server xxx.smtp.com
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script Monitor_Nginx {
 script "/root/monitor_nginx.sh"
 interval 2
 weight 2
}
vrrp_instance VI_1 {
 state MASTER #(主机为MASTER,备用机为BACKUP)
 interface eth0 #(HA监测网络接口)

 virtual_router_id 61 #(主、备机的virtual_router_id必须相同)
 #mcast_src_ip 192.168.166.203 #(多播的源IP,设置为本机外网IP,与VIP同一网卡)此项可不设置
 priority 90 #(主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高)
 advert_int 1 #(VRRP Multicast广播周期秒数)
 authentication {
 auth_type PASS #(VRRP认证方式)
 auth_pass 1234 #(密码)
}

 track_script {
 Monitor_Nginx #(调用nginx进程检测脚本)
}
 virtual_ipaddress {
 192.168.166.178 #(VRRP HA虚拟地址)
 }
}

###BACKUP方面只需要修改state为BACKUP , priority比MASTER稍低就OK了
 
三:注:monitor_nginx.sh为监控nginx进程的脚本,内容如下
#!/bin/bash
if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
then
 /usr/local/nginx/sbin/nginx
 sleep 5
 if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
 then
 killall keepalived
 fi
fi
#chmod +x monitor_nginx.sh
 
四.启动keepalived
service keepalived start

/usr/local/keepalived/sbin/keepalived -D -f /etc/keepalived/keepalived.conf
 
五.测试步骤
1.    访问VIP看是否能够正常访问后端的web
2.    停止其中一个web看是否能将访问转到另一台上
3.    停止两台nginx上任何一个nginx进程看监控进程脚本是否会自动启动nginx
4.    停止任何一台nginx上的keepalived进程看另一台是否接管vip

track_interface的意思是将Linux中你想监控的网络接口卡监控起来,当其中的一块出现故障是keepalived都将视为路由器出现故障。
这里请注意: virtual_router_id 61,同一组master/backup中,也就是如果你设置了多个VRRP,同一组这个ID必须相同,不然启动的时候主从都会把VIP给启动了
keepalived 通过发送和接收组播包中的同一个virtual_router_id 的中的成员的存活,来确定对方的不可用,一旦检测到对方的不可用,即会切换它的备份角色为主。
即:当真实机192.168.166.177上的keepalived 检测到 真实机192.168.166.203上的keepalived 不可用时,177上将使用vip:192.168.166.178对外服务并由backup角色转变为master
 
 
 

keepalived+nginx实现 HA与负载均衡中keepalived负责实现HA功能,控制VIP(虚拟网络地址)转移功能,nginx实现对realserver七层负载均衡功能,nginx提供代理服务和cache功能,DNS服务可以负责前段VIP的负载均衡。

nginx + keepalive - zhuzhu - 五事九思  (大连Linux主机维护)

keepalived的配置
192.168.200.1 keepalived配置
! Configuration File for keepalived

global_defs {
notification_email {
xxx@xxx.com
}
notification_email_from xxx@xxx.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_TEST_YDQ
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 61
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.101/24 dev eth0 label eth0:0
}
}

vrrp_instance VI_2 {
state BACKUP
interface eth0
virtual_router_id 62
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
192.168.200.102/24 dev eth0 label eth0:1
}
}


vrrp_instance VI_3 {
state BACKUP
interface eth0
virtual_router_id 63
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 3333
}
virtual_ipaddress {
192.168.200.103/24 dev eth0 label eth0:1
}
}

作者:u011386690 发表于2013-12-21 17:10:35 原文链接
阅读:109 评论:0 查看评论

相关 [nginx keepalive ha] 推荐:

nginx + keepalive 实现HA

- - CSDN博客编程语言推荐文章
主nginx负载均衡器 192.168.166.203. 辅nginx负载均衡器 192.168.166.177. VIP地址 192.168.166.178. 二.修改配置文件为以下内容: [master slave].  state MASTER #(主机为MASTER,备用机为BACKUP).

使用 Nginx 的 keepalive patch,nginx+memcached的TPS提升7倍

- 2sin18 - Linux@SOHU
编者按:本月初 Maxim Dounin,Nginx 最活跃的开发者之一,提交了 upstream keepalive patch,支持 http/fastcgi/memcached,除了减少和 upstream 的网络开销外,也意味着能反向代理 http chunked 响应了. 搜狐技术部CMS组的同学进行了一个简单的测试:.

KeepAlive详解 - HavenShen

- - 博客园_首页
KeepAlive既熟悉又陌生,踩过坑的同学都知道痛. 一线运维工程师踩坑之后对于KeepAlive的总结,你不应该错过. 最近工作中遇到一个问题,想把它记录下来,场景是这样的:. 从上图可以看出,用户通过Client访问的是LVS的VIP, VIP后端挂载的RealServer是Nginx服务器.

HA-JDBC -

- -
The state manager component is responsible for storing the active status of each database in the cluster, as well as any durability state.

MySQL HA 的選擇…

- - Gea-Suan Lin's BLOG
Percona 把常見的 MySQL High Availability 選擇整理後發表成 Webinar,投影片在這裡可以看到 (以及下載):「 Choosing a MySQL High Availability Solution」. 沒有太多新的東西,主要還是再次描述 MySQL HA 這塊目前沒有萬靈丹,常見的這幾個方案各有自己的優缺點,會依照環境與需求而產生不同的選擇.

HTTP的KeepAlive是开启还是关闭?

- - CSDN博客系统运维推荐文章
1、KeepAlive的概念与优势.         HTTP的KeepAlive就是浏览器和服务端之间保持长连接,这个连接是可以复用的. 当客户端发送一次请求,收到相应内容后,这个连接会保持一段时间,在该时间内的第二次就不需要再重新建立连接,就可以直接使用这次的连接来发送请求了,极大的提高了速度.

聊聊 TCP 中的 KeepAlive 机制

- - ImportNew
服务端的系统设置中经常会和底层协议打交道,我们有必要重温一下曾经那些“听过”却不熟悉的名词. 今天聊的话题是 KeepAlive,在实际应用中又是怎么使用的. 为什么有Keepalive. 大家都做过电梯吧,假设电梯来了你先进去,你朋友还没进来,过一段时间电梯门就会自动关闭, 你应该没遇到过哪个电梯会一直等你朋友来了才关门的.

SUSE Linux HA双机搭建

- - CSDN博客数据库推荐文章
原来的数据库服务器运行在HP DL388G7服务器上面,内存32G,由于业务增长,内存吃紧,加上时不时出现服务器硬件故障,由于是单实例单服务器,存在单点发现,于是打算采取一些措施改善一下:. 2)并搭建服务器操作系统级别的双机. 3)迁移数据库数据到新服务器. 前面已经写过数据迁移相关的文章,题目为“ EXP/IMP迁移数据”,链接如下: http://blog.csdn.net/laven54/article/details/8877940.

hdfs-ha热备原理

- - 开源软件 - ITeye博客
下面的总结来自于: http://dongxicheng.org/hadoop-hdfs/hdfs-ha-federation-deploy/ .            Hadoop 2.0中的HDFS增加了两个重大特性,HA和Federaion. HA即为High Availability,用于解决NameNode单点故障问题,该特性通过热备的方式为主NameNode提供一个备用者,一旦主NameNode出现故障,可以迅速切换至备NameNode,从而实现不间断对外提供服务.

MySQL HA Solution 2019(3)MyCat

- - 企业架构 - ITeye博客
0  . 0  .       .