lvs-nat,lvs-dr模型构建phpMyAdmin

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lvs-nat,lvs-dr模型构建phpMyAdmin相关的知识,希望对你有一定的参考价值。

  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算法

    技术分享

     技术分享

    经过了一段时间的持久连接,再次访问时:

    技术分享

    技术分享

    

  

  

  


以上是关于lvs-nat,lvs-dr模型构建phpMyAdmin的主要内容,如果未能解决你的问题,请参考以下文章

负载均衡之LVS-NAT LVS-DR模型详解

LVS-DR模型详解及演示

lvs-nat和lvs-dr

lvs-nat及lvs-dr实验

LVS-NAT LVS-DR

02: 集群及LVS简介 LVS-NAT集群 LVS-DR集群