1.使用NAT模型的TCP协议类型的lvs服务负载均衡一个php应用,如Discuz!论坛或者phpMyAdmin;
NAT模型的lvs集群的构建是基于网络地址转换进行的;所以首先必须要有至少三台主机,配置其IP地址;
①
Directory主机:
172.16.72.5(面向外网IP)
192.168.72.5(面向内网RS的IP)
RS1主机:
192.168.72.6(RIP1)
设置默认网关:
RS2主机:
192.168.72.7(RIP2)
设置默认网关:
配置RS主机通往Directory的网关,为什么添加网关,详情请看上一篇博客!
②在三台主机上安装httpd服务
yum -y install httpd
配置RS1的虚拟主机
配置RS2的虚拟主机
安装RS的php-fpm与mariadb-server服务
yum -y install php-fpm mariadb-server
对php-fpm的配置文件进行修改,修改为监听本机(默认就是监听本机的,刚下载的朋友可以不用改了)
③设置Directory
首先检查一下Directory主机是否加载IPVS的内核模块
有则已加载
下载lvs的用户空间命令ipvsadm,用于设置ipvs的规则命令
yum install -y ipvsadm
设置集群服务规则:
-t:表示tcp服务;后面的IP地址与端口表示的是这次集群Directory的VIP与相关服务端口;
-s:表示使用的算法,这里算法表示为rr算法,算法详情请见上一篇博客;
-p:设置长连接,不设置无法正常启动;
添加RS管理规则:
-r:为指定的RIP;
最后设置核心转发功能,否则Directory无法转发
将phpMyAdmin导入两台RS主机中,解压;
配置MySQL表与表对应的用户权限
RS1:
RS2:
配置php-fpm:
创建其session目录,存放会话,并将其属主属组更改为apache
通过客户端访问:
因为是rr算法,,从第一台RS访问,所以其用户密码为wjq,123456
经过一段时间的长连接再次访问:
2.使用DR模型的FWM类型的lvs服务负载均衡一个php应用,如Discuz!论坛或者phpMyAdmin;
DR模型的原理上篇博客已经讲得很清楚了,在这里就不多说了;
首先配置DR调度器:
因为DR模型的直连路由架构,所以DR调度器的VIP与DIP在同一个端口,在这里将VIP作为从接口,将DIP作为主接口,方便后续解决单点故障;
VIP的配置方式:
ifconfig eno16777736:0 172.16.72.5 netmask 255.255.255.255 broadcast 172.16.72.5 up
设置FWH规则:
规则模式同ipvs相似,不同在于其需要在报文进入内核空间后设置防火墙标签,然后由设置的FWH规则根据其标签确定使用哪个集群服务,使用哪种算法发往哪台RS;
设置防火墙标签需在mangle表的PREROUTING链上设置;
#iptables -t mangle -A PREROUTING -p tcp --dport 80 -d 172.16.72.5 -j MARK --set-mark 10
注意:目标IP设置为VIP的,--set-mark设置的为防火墙标签,设置的值随意,80端口则为访问VIP的的那个端口服务;
设置基于FWH的集群服务:
#ipvsadm -A -f 10 -s rr
最后设置核心转发功能!!
DR模型的调度器配置完毕!
配置RS:
首先需要配置一个与DIP同网段的RIP,并将其arp_ignore与arp_announce设置为1与2
arp_ignore常用的三种等级:
0:默认值,对于任何网络的访问都会回应;
1:对不是访问本网络接口的报文不予以回应;
2:对不是访问本网络接口的保温不予以回应,并且保证来访IP地址与该接口的IP地址在同一子 网;
注意:一般用的是1这个级别;
arp_announce常用的三种级别:
0:默认值,将本机所有接口的信息向所有接口所连接的网络中通告;
1:尽量避免向本接口不同网络中的其他接口通告;
2:绝对避免向非本网络的主机通告;
设置方式:在/proc/sys/net/ipv4/conf/all/arp_ignore
/proc/sys/net/ipv4/conf/all/arp_announce
/proc/sys/net/ipv4/conf/lo/arp_ignore
/proc/sys/net/ipv4/conf/lo/arp_announce
使用输出重定向的方式写入
如echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
配置RS的VIP,再环回接口的标签上配置
如:
配置方法:#ifconfig lo:0 172.16.72.5 netmask 255.255.255.255 broadcast 172.16.72.5 up
第二台RS配置方法同上;
将phpMyAdmin压缩包导入/var/www/html中,解压,配置php-fpm(同nat模型的配置一样),配置 Mariadb(同nat模型配置一样)
直接访问:
访问第一次,因为使用的是rr算法
经过了一段时间的持久连接,再次访问时: