如何搭建高可用架构(五)--LVS+Nginx配置实现

如何搭建高可用架构(五)–LVS+Nginx配置实现

标签(空格分隔): 高可用架构


上文中已经提到LVS在高可用架构中的作用,架构图如下:
如何搭建高可用架构(五)--LVS+Nginx配置实现_第1张图片
本文将实现怎么配置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

你可能感兴趣的:(架构篇)