详解利用Keepalived+Nginx解决站点高可用性 推荐
2013-11-07 10:11
686 查看
背景:
公司官网PV不高,压力不大,所以公司给出两台服务器来提供官网web服务,毕竟是公司门面,不能出现问题!所以就需要一个轻量级web容灾方案!
方案:
利用keepalived+nginx实现官网web的高可用性
两台服务器一台为主,一台为备机,使两台机器公用一个虚拟IP,当主服务器宕机,106.3.32.6这个IP会自动切换到备机上,前端机恢复之后再自动切换回主服务机
然后,主服务机和备机利用rsync实现实时同步数据,
rsync的安装配置可以参照我之前的一篇文章:http://cuimk.blog.51cto.com/6649029/1322241
环境:
CentOS 6.4
nginx-1.2.1
keepalived-1.2.2
一、安装主和辅都需要安装keepalived,安装方法相同
二、配置主和辅配置的差别只在stateMASTER和priority 100vi /etc/keepalived/keepalived.conf
Keepalived管理虚IP是通过组播和优先级实现的,优先级高的会拥有虚IP的管理权,所以要实现IP自动切换,只需要建立一个监控脚本,让keepalived进行调用,一旦发现nginx出现故障就kill掉keepalived的进程,让其他keepalived管理此IPvi /root/shell/nginx_pid.sh
Kill掉主的keepalived,再查看,虚IP消失
查看辅的这边,可以看到虚IP
再启动主的keepalived,虚IP又回到主的这边
五、总结此方案没有做负载均衡,只是做了一个故障自动切换的处理,适用于PV不是很高的环境(当然Nginx做好调优其负载能力也是很强的),不过可以以同样的原理举一反三,把他做在高并发的负载均衡器上,来实现高必发的容灾方案!
公司官网PV不高,压力不大,所以公司给出两台服务器来提供官网web服务,毕竟是公司门面,不能出现问题!所以就需要一个轻量级web容灾方案!
方案:
利用keepalived+nginx实现官网web的高可用性
两台服务器一台为主,一台为备机,使两台机器公用一个虚拟IP,当主服务器宕机,106.3.32.6这个IP会自动切换到备机上,前端机恢复之后再自动切换回主服务机
然后,主服务机和备机利用rsync实现实时同步数据,
rsync的安装配置可以参照我之前的一篇文章:http://cuimk.blog.51cto.com/6649029/1322241
环境:
CentOS 6.4
nginx-1.2.1
keepalived-1.2.2
一、安装主和辅都需要安装keepalived,安装方法相同
yum -y install kernel-devel yum install openssl-* -y wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz tar xzf keepalived-1.2.2.tar.gz cd keepalived-1.2.2 ./configure --prefix=/usr/local/keepalived make && make install ln -s /usr/src/kernels/2.6.18-238.el5-i686/ /usr/src/linux cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ mkdir -pv /etc/keepalived cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ ln -s /usr/local/keepalived/sbin/keepalived /sbin/加入开机启动:chkconfigkeepalived on
二、配置主和辅配置的差别只在stateMASTER和priority 100vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { # notification_email { ####此处定义发生替换会邮件通知 # cuimingkun@yinwuweiye.com # } # notification_email_from keepalived@domain.com # smtp_server 127.0.0.1 # smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_http_port { script "/root/shell/nginx_pid.sh" ##监控脚本位置 interval 2 weight 2 } track_script { chk_http_port } vrrp_instance VI_1 { state MASTER #####备机为BACKUP interface em1 virtual_router_id 51 priority 100 #####备机要小于主 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 106.3.32.6 ####虚拟IP } }三、分别在主和辅服务器上建立nginx的监控脚本
Keepalived管理虚IP是通过组播和优先级实现的,优先级高的会拥有虚IP的管理权,所以要实现IP自动切换,只需要建立一个监控脚本,让keepalived进行调用,一旦发现nginx出现故障就kill掉keepalived的进程,让其他keepalived管理此IPvi /root/shell/nginx_pid.sh
#!/bin/bash A=`ps -C nginx --no-header |wc -l` if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx sleep 3 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then killall keepalived fi fi注意给脚本添加执行权限:chmod+x /root/shell/nginx_pid.sh两台机器启动keepalived:service keepalived start四、测试#ip a查看IP查看主的IP,目前虚IP在主这里
Kill掉主的keepalived,再查看,虚IP消失
查看辅的这边,可以看到虚IP
再启动主的keepalived,虚IP又回到主的这边
五、总结此方案没有做负载均衡,只是做了一个故障自动切换的处理,适用于PV不是很高的环境(当然Nginx做好调优其负载能力也是很强的),不过可以以同样的原理举一反三,把他做在高并发的负载均衡器上,来实现高必发的容灾方案!
相关文章推荐
- 分步LVS: 详解利用Keepalived+Nginx解决站点高可用性
- 分步LVS: 详解利用Keepalived+Nginx解决站点高可用性
- CentOS6.5环境使用keepalived实现nginx服务的高可用性及配置详解
- CentOS6.5环境使用keepalived实现nginx服务的高可用性及配置详解
- 利用keepalived实现多cpu支持的squid3.2高可用性~ 推荐
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解 推荐
- 利用AWStatus监控nginx实时日志并认证登陆 推荐
- Nginx 利用子目录搭建多站点
- 基于etcd+confd通过nginx对docker服务混合注册发现详解 推荐
- 利用nginx 反向代理解决跨域问题
- 利用NLB和DFS构建企业高可用性高性能的WEB、FTP站点
- nginx+keepalived+3个站点
- 利用nginx访问日志如何记录mysql中的用户id详解
- Nginx 多站点配置实例详解
- nginx 解决首页跳转问题详解
- nginx+keepalived高可用性负载均衡
- 利用zabbix web scenario 监控Web站点的可用性
- Keepalived + nginx实现高可用性和负载均衡
- Linux利用Esmtp 选择邮件服务器发送邮件(解决手机接收乱码) 推荐
- 利用LVS+Keepalived 实现高性能高可用负载均衡服务器 推荐