CentOS 5.8部署Nginx+Keepalived实现负载均衡
一.体系架构
在Keepalived + Nginx高可靠负载均衡架构中,keepalived负责实现High-availability (HA) 功能控制前端机VIP(虚拟网络地址),当有设备发生故障时,热备服务器可以瞬间将VIP自动切换过来,实际运行中体验只有2秒钟切换时间,DNS服务可以负责前端VIP的负载均衡。
二.简单原理
NGINX_MASTER、NGINX_BACKUP两台服务器均通过keepalived软件把eth0网卡绑上一个虚拟IP(VIP)地址192.168.0.56,此VIP当前由谁承载着服务就绑定在谁的eth0上,当NGINX_MASTER发生故障时,NGINX_BACKUP会通过/etc/keepalived/keepalived.conf文件中设置的心跳时间advert_int 1检查,无法获取NGINX_MASTER正常状态的话,NGINX_BACKUP会瞬间绑定VIP来接替nginx_master的工作,当NGINX_MASTER恢复后keepalived会通过priority参数判断优先权将虚拟VIP地址192.168.0.56重新绑定给NGINX_MASTER的eth0网卡。
使用此方案的优越性
1.实现了可弹性化的架构,在压力增大的时候可以临时添加web服务器添加到这个架构里面去;
2.upstream具有负载均衡能力,可以自动判断后端的机器,并且自动踢出不能正常提供服务的机器;
3.相对于lvs而言,正则分发和重定向更为灵活。而Keepalvied可保证单个nginx负载均衡器的有效性,避免单点故障;
4.用nginx做负载均衡,无需对后端的机器做任何改动。
三.系统环境
两台负载机器安装:CentOS5.8 +nginx+keepalived,分别命名为: NGINX_MASTER,NGINX_BACKUP。
两台WEB集群机器安装:windows server 2008 R2+IIS7,分别命名为: WEB_1,WEB_2。
NGINX_MASTER:
ip:192.168.0.69(主服务器)
子网掩码:255.255.255.0
默认网关:192.168.0.1
vip:192.168.0.56
LVS_DR_BACKUP:
ip:192.168.0.47(备服务器)
子网掩码:255.255.255.0
默认网关:192.168.0.1
vip:192.168.0.56
WEB_1:
ip:192.168.0.109
子网掩码:255.255.255.0
默认网关:192.168.0.1
WEB_2:
ip:192.168.0.115
子网掩码:255.255.255.0
默认网关:192.168.0.1
四、Nginx的安装配置
分别在NGINX_MASTER、NGINX_BACKUP两台服务器安装nginx
1、关闭SELinux
查看SELinux的状态
getenforce
如果是开启状态,则
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
重启系统
reboot
2、开启防火墙80端口
vi /etc/sysconfig/iptables
添加一条规则
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
3、安装编译工具
yum update
yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl mhash(哈稀函数库)