1.使用NAT模型的TCP协议类型的lvs服务负载均衡一个php应用,如Discuz!论坛或者phpMyAdmin;
NAT模型的lvs集群的构建是基于网络地址转换进行的;所以首先必须要有至少三台主机,配置其IP地址;
①
Directory主机:
172.16.72.5(面向外网IP)
192.168.72.5(面向内网RS的IP)
650) this.width=650;" src="https://s3.51cto.com/oss/201710/20/abe7b70630c567fb005fd03f4080755a.jpg-wh_500x0-wm_3-wmp_4-s_104858511.jpg" title="QQ截图20171020185737.jpg" alt="abe7b70630c567fb005fd03f4080755a.jpg-wh_" />
RS1主机:
192.168.72.6(RIP1)
650) this.width=650;" src="https://s3.51cto.com/oss/201710/20/eca1ee39deb43f64fb471e437d3cf2e4.jpg-wh_500x0-wm_3-wmp_4-s_2911863924.jpg" title="QQ截图20171020185812.jpg" alt="eca1ee39deb43f64fb471e437d3cf2e4.jpg-wh_" />
设置默认网关:
650) this.width=650;" src="https://s4.51cto.com/oss/201710/20/6f36692a88947dacf000d4a6365f376d.jpg-wh_500x0-wm_3-wmp_4-s_1003924272.jpg" title="QQ截图20171020190000.jpg" alt="6f36692a88947dacf000d4a6365f376d.jpg-wh_" />
RS2主机:
192.168.72.7(RIP2)
650) this.width=650;" src="https://s1.51cto.com/oss/201710/20/043111a2ceeabff4ea69fbff6b5f1b20.jpg-wh_500x0-wm_3-wmp_4-s_2651453430.jpg" title="QQ截图20171020185857.jpg" alt="043111a2ceeabff4ea69fbff6b5f1b20.jpg-wh_" />
设置默认网关:
650) this.width=650;" src="https://s4.51cto.com/oss/201710/20/866402c69e49c3f3c5eddb3c176ac736.jpg-wh_500x0-wm_3-wmp_4-s_1408027144.jpg" title="QQ截图20171020190015.jpg" alt="866402c69e49c3f3c5eddb3c176ac736.jpg-wh_" />
配置RS主机通往Directory的网关,为什么添加网关,详情请看上一篇博客!
②在三台主机上安装httpd服务
yum -y install httpd
配置RS1的虚拟主机
650) this.width=650;" src="https://s3.51cto.com/oss/201710/20/2e1682ca86dbe56d37846f23a89ad9ab.jpg-wh_500x0-wm_3-wmp_4-s_3596192678.jpg" title="QQ截图20171020190244.jpg" alt="2e1682ca86dbe56d37846f23a89ad9ab.jpg-wh_" />
配置RS2的虚拟主机
650) this.width=650;" src="https://s3.51cto.com/oss/201710/20/ab279690534e4f5aa949e6219d899c59.jpg-wh_500x0-wm_3-wmp_4-s_3269901070.jpg" title="QQ截图20171020190303.jpg" alt="ab279690534e4f5aa949e6219d899c59.jpg-wh_" />
安装RS的php-fpm与mariadb-server服务
yum -y install php-fpm mariadb-server
对php-fpm的配置文件进行修改,修改为监听本机(默认就是监听本机的,刚下载的朋友可以不用改了)
③设置Directory
首先检查一下Directory主机是否加载IPVS的内核模块
650) this.width=650;" src="https://s4.51cto.com/oss/201710/20/049ef054ab2130733161c75964832a7a.jpg-wh_500x0-wm_3-wmp_4-s_2338625748.jpg" title="QQ截图20171020190623.jpg" alt="049ef054ab2130733161c75964832a7a.jpg-wh_" />
有则已加载
下载lvs的用户空间命令ipvsadm,用于设置ipvs的规则命令
yum install -y ipvsadm
设置集群服务规则:
650) this.width=650;" src="https://s5.51cto.com/oss/201710/21/01fb7d89e926b480b043765563f6d574.jpg-wh_500x0-wm_3-wmp_4-s_1605622804.jpg" title="QQ截图20171021102647.jpg" alt="01fb7d89e926b480b043765563f6d574.jpg-wh_" />
-t:表示tcp服务;后面的IP地址与端口表示的是这次集群Directory的VIP与相关服务端口;
-s:表示使用的算法,这里算法表示为rr算法,算法详情请见上一篇博客;
-p:设置长连接,不设置无法正常启动;
添加RS管理规则:
650) this.width=650;" src="https://s1.51cto.com/oss/201710/20/445dd82074ca1ceaf45449a5fadb3688.jpg-wh_500x0-wm_3-wmp_4-s_2489192103.jpg" title="QQ截图20171020191406.jpg" alt="445dd82074ca1ceaf45449a5fadb3688.jpg-wh_" />
-r:为指定的RIP;
最后设置核心转发功能,否则Directory无法转发
650) this.width=650;" src="https://s5.51cto.com/oss/201710/20/b2e3b98575926fb2753b34278b8a5fd3.jpg-wh_500x0-wm_3-wmp_4-s_238487057.jpg" title="QQ截图20171020191557.jpg" alt="b2e3b98575926fb2753b34278b8a5fd3.jpg-wh_" />
将phpMyAdmin导入两台RS主机中,解压;
配置MySQL表与表对应的用户权限
RS1:
650) this.width=650;" src="https://s2.51cto.com/oss/201710/21/a2f20842c87f9b5cafb04aa630c33e5a.jpg-wh_500x0-wm_3-wmp_4-s_102074464.jpg" title="QQ截图20171021102235.jpg" alt="a2f20842c87f9b5cafb04aa630c33e5a.jpg-wh_" />
RS2:
650) this.width=650;" src="https://s3.51cto.com/oss/201710/21/e9a916348654aff1c73b27cd557192a7.jpg-wh_500x0-wm_3-wmp_4-s_3110899566.jpg" title="QQ截图20171021102335.jpg" alt="e9a916348654aff1c73b27cd557192a7.jpg-wh_" />
配置php-fpm:
创建其session目录,存放会话,并将其属主属组更改为apache
650) this.width=650;" src="https://s2.51cto.com/oss/201710/21/3add277a74b53d88daa3da22ffca27e1.jpg-wh_500x0-wm_3-wmp_4-s_4285716318.jpg" title="QQ截图20171021102942.jpg" alt="3add277a74b53d88daa3da22ffca27e1.jpg-wh_" />
通过客户端访问:
因为是rr算法,,从第一台RS访问,所以其用户密码为wjq,123456
650) this.width=650;" src="https://s1.51cto.com/oss/201710/21/26c158082eb28458dea3e38415127b0a.jpg-wh_500x0-wm_3-wmp_4-s_4167092789.jpg" title="QQ截图20171021103450.jpg" alt="26c158082eb28458dea3e38415127b0a.jpg-wh_" />
650) this.width=650;" src="https://s5.51cto.com/oss/201710/21/57ada79993e2d3e26412caba8da2121e.jpg-wh_500x0-wm_3-wmp_4-s_709626865.jpg" title="QQ截图20171021103439.jpg" alt="57ada79993e2d3e26412caba8da2121e.jpg-wh_" />
经过一段时间的长连接再次访问:
650) this.width=650;" src="https://s1.51cto.com/oss/201710/21/c83d252da561f3ec0d5735b0fe9dd41d.jpg-wh_500x0-wm_3-wmp_4-s_2894178923.jpg" title="QQ截图20171021104523.jpg" alt="c83d252da561f3ec0d5735b0fe9dd41d.jpg-wh_" />
650) this.width=650;" src="https://s4.51cto.com/oss/201710/21/1002e661201c90884aa1ab0d0009abe4.jpg-wh_500x0-wm_3-wmp_4-s_1198604531.jpg" title="QQ截图20171021104537.jpg" alt="1002e661201c90884aa1ab0d0009abe4.jpg-wh_" />
2.使用DR模型的FWM类型的lvs服务负载均衡一个php应用,如Discuz!论坛或者phpMyAdmin;
DR模型的原理上篇博客已经讲得很清楚了,在这里就不多说了;
首先配置DR调度器:
因为DR模型的直连路由架构,所以DR调度器的VIP与DIP在同一个端口,在这里将VIP作为从接口,将DIP作为主接口,方便后续解决单点故障;
650) this.width=650;" src="https://s4.51cto.com/oss/201710/21/e1de25ff80cc174d8b0d0afc72406f8d.jpg-wh_500x0-wm_3-wmp_4-s_4243140770.jpg" title="QQ截图20171021194245.jpg" alt="e1de25ff80cc174d8b0d0afc72406f8d.jpg-wh_" />
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
650) this.width=650;" src="https://s3.51cto.com/oss/201710/21/003696cb182cd69b5331e0cbe4075b25.jpg-wh_500x0-wm_3-wmp_4-s_2653451955.jpg" title="QQ截图20171021195722.jpg" alt="003696cb182cd69b5331e0cbe4075b25.jpg-wh_" />
最后设置核心转发功能!!
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,再环回接口的标签上配置
如:
650) this.width=650;" src="https://s4.51cto.com/oss/201710/21/a1f42757adc944a2fb8aa4d68569ea77.jpg-wh_500x0-wm_3-wmp_4-s_3431101046.jpg" title="QQ截图20171021200605.jpg" alt="a1f42757adc944a2fb8aa4d68569ea77.jpg-wh_" />
配置方法:#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算法
650) this.width=650;" src="https://s1.51cto.com/oss/201710/21/aa96e2a7dc662d17b32aa4b6fced60e6.jpg-wh_500x0-wm_3-wmp_4-s_1098429254.jpg" title="QQ截图20171021201033.jpg" alt="aa96e2a7dc662d17b32aa4b6fced60e6.jpg-wh_" />
650) this.width=650;" src="https://s5.51cto.com/oss/201710/21/44ea78e8634606e2259f52dfc0f982f0.jpg-wh_500x0-wm_3-wmp_4-s_374054806.jpg" title="QQ截图20171021201018.jpg" alt="44ea78e8634606e2259f52dfc0f982f0.jpg-wh_" />
经过了一段时间的持久连接,再次访问时:
650) this.width=650;" src="https://s4.51cto.com/oss/201710/21/18f3e259ad026cecd6139c4decd3a5cb.jpg-wh_500x0-wm_3-wmp_4-s_4245954167.jpg" title="QQ截图20171021193224.jpg" alt="18f3e259ad026cecd6139c4decd3a5cb.jpg-wh_" />
650) this.width=650;" src="https://s4.51cto.com/oss/201710/21/be13fbf2f1f913d9dddf0e4f3136eca6.jpg-wh_500x0-wm_3-wmp_4-s_4153387720.jpg" title="QQ截图20171021193209.jpg" alt="be13fbf2f1f913d9dddf0e4f3136eca6.jpg-wh_" />
lvs-nat,lvs-dr模型构建phpMyAdmin
原文地址:http://12480612.blog.51cto.com/12470612/1974885