如何搭建高可用架构(五)–LVS+Nginx配置实现
标签(空格分隔): 高可用架构
上文中已经提到LVS在高可用架构中的作用,架构图如下:
本文将实现怎么配置LVS+Nginx的架构图:
LVS安装
1、检测Luinx内核中是否已经存在LVS
Centos6.5的内核已经支持了lvs,所有只需要安装lvs的管理工具ipvsadm即可;
1.1 检查linux内核是否集成lvs模块
[reman@node3 ~]$ modprobe -l | grep ipvs
kernel/net/netfilter/ipvs/ip_vs.ko
kernel/net/netfilter/ipvs/ip_vs_rr.ko
kernel/net/netfilter/ipvs/ip_vs_wrr.ko
kernel/net/netfilter/ipvs/ip_vs_lc.ko
kernel/net/netfilter/ipvs/ip_vs_wlc.ko
kernel/net/netfilter/ipvs/ip_vs_lblc.ko
kernel/net/netfilter/ipvs/ip_vs_lblcr.ko
kernel/net/netfilter/ipvs/ip_vs_dh.ko
kernel/net/netfilter/ipvs/ip_vs_sh.ko
kernel/net/netfilter/ipvs/ip_vs_sed.ko
kernel/net/netfilter/ipvs/ip_vs_nq.ko
kernel/net/netfilter/ipvs/ip_vs_ftp.ko
kernel/net/netfilter/ipvs/ip_vs_pe_sip.ko
1.2 开启路由转发功能:
echo "1">/proc/sys/net/ipv4/ip_forward
2 安装依赖
yum install -y gcc gcc-c++ makepcre pcre-devel kernel-devel openssl-devel libnl-devel popt*
3、安装ipvsadm
1、cd /usr/local/src/
2、mkdir ipvsadm
3、cd ipvsadm/
4、wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz或者rz上传
5、tar -xvf ipvsadm-1.26.tar.gz
6、cd ipvsadm-1.26
7、make
8、make install
9、ipvsadm –help (安装成功)
LVS配置
1、配置Director Server
1.1 在eth0上绑定虚拟ip
ifconfig eth0:0 192.168.0.57 broadcast 192.168.0.57 netmask 255.255.255.255 up
此处在eth0设备上绑定了一个虚拟设备eth0:0,同时设置了一个虚拟IP是192.168.0.57,然后指定广播地址也为192.168.0.57,需要特别注意的是,这里的子网掩码为255.255.255.255。
1.2.添加路由规则
route add -host 192.168.0.57 dev eth0:0
1.3.启用系统的包转发功能
echo "1" >/proc/sys/net/ipv4/ip_forward
参数值为1时启用ip转发,为0时禁止ip转发。其实在DR模式中,开启系统的包转发功能不是必须的,而在NAT模式下此操作是必须的。
1.4. 清除原有转发规则
ipvsadm –C
1.5. 添加虚拟IP规则
ipvsadm -A -t 192.168.0.57:80 -s rr
1.6. 在虚拟IP中添加服务规则
ipvsadm -a -t 192.168.0.57:80 -r 192.168.0.48:80 -g
ipvsadm -a -t 192.168.0.57:80 -r 192.168.0.49:80 –g
在新加虚拟IP记录中添加两条新的Real Server记录,并且指定LVS 的工作模式为直接路由模式。
1.7.重启LVS服务
ipvsadm
2、配置Real Server
在lvs的DR和TUn模式下,用户的访问请求到达真实服务器后,是直接返回给用户的,而不再经过前端的Director Server,因此,就需要在每个Real server节点上增加虚拟的VIP地址,这样数据才能直接返回给用户。
2.1. 在回环设备上绑定了一个虚拟IP地址
ifconfig lo:0 192.168.0.57 broadcast 192.168.0.57 netmask 255.255.255.255 up
/sbin/route add -host 192.168.0.57 dev lo:0
2.2. 设置参数
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p