首页 > 其他分享 >负载均衡

负载均衡

时间:2022-09-20 15:46:29浏览次数:49  
标签:iptables 负载 192.168 echo vip usr 均衡 80

O:环境准备

  1. 三台虚拟机

  2. 分别取名dir rs1 rs2

  3. 给dir1和dir2分别加入网关=dir的IP

    vi /etc/sysconfig/network-scripts/ifcfg-ens33
    GETWAY=192.168.200.147
    ##也可以在虚拟机设置那边改
  4. 清空iptables的规则

    iptables -F; iptables -t nat -F; service iptables save       
  5. 安装yum源

    rm -f /etc/yum.repos.d/*
    cat /etc/yum.repos.d/local.repo
    [gpmall]
    name=gpmall
    baseurl=file:///opt/gpmall-repo
    gpgcheck=0
    enabled=1
    yum clean all
    yum repolist
  6. 安装iptables-service

    yum -y install iptables-services

     

  7. 清空规则

    iptables -F; iptables -t nat -F; service iptables save

     

  8. 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    getenforce 0

Ⅰ:安装LVS

  1. dir安装ipvsadm

    yum install -y ipvsadm

     

  2. dir编写脚本

    vim /usr/local/sbin/lvs_nat.sh
    #! /bin/bash
    # director 服务器上开启路由转发功能
    echo 1 > /proc/sys/net/ipv4/ip_forward
    # 关闭icmp的重定向
    echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
    echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
    # 注意区分网卡名字
    echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
    echo 0 > /proc/sys/net/ipv4/conf/ens34/send_redirects
    # director 设置nat防火墙
    iptables -t nat -F
    iptables -t nat -X
    iptables -t nat -A POSTROUTING -s 192.168.200.0/24  -j MASQUERADE
    # director设置ipvsadm
    IPVSADM='/usr/sbin/ipvsadm'
    $IPVSADM -C
    $IPVSADM -A -t 192.168.147.144:80 -s wlc 
    ###-p 300###
    $IPVSADM -a -t 192.168.147.144:80 -r 192.168.200.131:80 -m -w 1 #rs1
    $IPVSADM -a -t 192.168.147.144:80 -r 192.168.200.132:80 -m -w 1 #rs2
    #-t 后面为主机模式IP地址
    ​
    bash/usr/local/sbin/lvs_nat.sh  #启动脚本
    killall nginx

     

  3. rs1+2 安装niginx,配置网页数据

    yum -y install nginx
    echo "rs1" > /usr/share/nginx/html/index.html   
    echo "rs2" > /usr/share/nginx/html/index.html  

     

  4. 测试nginx

    curl 192.168.200.150
    rs2
    curl 192.168.200.148
    rs1
     curl 192.168.183.129
    rs2
    curl 192.168.183.129
    rs1
     curl 192.168.183.129
    rs2
    curl 192.168.183.129
    rs1

    Ⅱ:DR模式LVS搭建

    1. 关闭前面网关

    2. 编写dir脚本

      vim /usr/local/sbin/lvs_rs.sh 
      #! /bin/bash
      echo 1 > /proc/sys/net/ipv4/ip_forward
      ipv=/usr/sbin/ipvsadm
      vip=192.168.200.110 虚拟
      rs1=192.168.200.148
      rs2=192.168.200.150
      #注意这里的网卡名字
      ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
      route add -host $vip dev ens33:2
      $ipv -C
      $ipv -A -t $vip:80 -s wrr
      $ipv -a -t $vip:80 -r $rs1:80 -g -w 1
      $ipv -a -t $vip:80 -r $rs2:80 -g -w 1
    3. 编写rs1+2脚本

      vim /usr/local/sbin/lvs_rs.sh 
      #/bin/bash
      vip=192.168.200.110  #虚拟-
      #把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
      ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
      route add -host $vip lo:0
      #以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
      #参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
      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
    4. 3节点运行脚本并测试

      bash /usr/local/sbin/lvs_dr.sh 

       

          
      1. keepalived+LVS

        O:环境搭建:

        1.keepalived +vip

        2.配置keepalivede文件

         vim /etc/keepalived/keepalived.conf    //添加内容如下
        vrrp_instance VI_1 {
            state MASTER
            interface ens33
            virtual_router_id 51
            priority 100
            advert_int 1
            authentication {
                auth_type PASS
                auth_pass 1111
            }
            virtual_ipaddress {
                192.168.200.110     
            }
        }
        ​
        virtual_server 192.168.200.110 80 {     #VIP
            delay_loop 10       #每隔10秒查询realserver状态
            lb_algo wlc                 #lvs算法
            lb_kind DR                  #DR模式
            persistence_timeout 60          #(同一IP的连接60秒内被分配到同一台realserver)
            protocol TCP        #用TCP协议检查realserver状态
        ​
            real_server 192.168.200.148 80 {        #真实服务器ip
                weight 100      #权重
                TCP_CHECK {
                    connect_timeout 10      # 10秒无响应超时(连接超时时间)
                    nb_get_retry 3          #失败重试次数
                    delay_before_retry 3    #失败重试的间隔时间
                    connect_port 80     #连接的后端端口
                }
        }
             real_server 192.168.200.150 80 {
                weight 100
                TCP_CHECK {
                    connect_timeout 10
                    nb_get_retry 3
                    delay_before_retry 3
                    connect_port 80
                }
            }
        }

        3.清空规则,重启脚本

         ipvsadm -C               //把之前的ipvsadm规则清空
         systemctl restart network    //可以把之前设置的VIP删除掉
         
        rs1:sh /usr/local/sbin/lvs_rs.sh 
        rs2:sh /usr/local/sbin/lvs_rs.sh 
        ​
         systemctl start keepalived
         ps aux |grep keepalived
        root       2294  0.0  0.0 118684  1388 ?        Ss   15:14   0:00 /usr/sbin/keepalived -D
        root       2295  0.0  0.1 122884  2388 ?        S    15:14   0:00 /usr/sbin/keepalived -D
        root       2296  0.0  0.1 122884  2412 ?        S    15:14   0:00 /usr/sbin/keepalived -D
        root       2298  0.0  0.0 112720   988 pts/0    R+   15:15   0:00 grep --color=auto keepalived

         

标签:iptables,负载,192.168,echo,vip,usr,均衡,80
From: https://www.cnblogs.com/hohonb/p/16711269.html

相关文章

  • 剖析《Linux 平均负载:解开谜团》【转】
    转自:https://blog.csdn.net/cs_tech/article/details/126563993目录原文翻译历史这3个数字LinuxUninterruptibleTasks寻找一个古老的Linux补丁uninterruptible......
  • glusterFS 删除节点 容量均衡gluster volume rebalance
    一、不是复制卷1.删除brickglustervolumeremove-brick卷名节点名或ip:brick所在的地址 start2.删除节点glusterpeerdetach 节点名或ip二、是复制卷1.降低副本数......
  • 平滑的加权轮询均衡算法
    前言在反向代理、路由、分布式应用调度等场景中通常都需要用到负载均衡算法,负载均衡的关键要点是“均衡”,即确保调用请求能均衡的落到多个处理节点上,负载均衡算法一般使用......
  • Ribbon负载均衡流程
    大概流程:    RestTemplate发起http请求,因为RestTemplate添加了@LoadBalanced注解,因此发起的Http请求会被LoadBalanceInterceptor拦截,通过Ribbon负载均衡,从eureka-ser......
  • 负载均衡
    客户端和服务器端1、Ribbo是一个基于HTTP和TCP的客户端负载均衡器,当我们将Ribbon和Eureka一起使用时,Ribbon会从Eureka注册中心去获取服务端列表,然后进行轮询访问以到达负......
  • SpringCloud 使用 Ribbon 实现客户端负载均衡
    SpringCloud在2020.0.1版本之前,服务的消费者在引入spring-cloud-starter-netflix-eureka-client的依赖后(该依赖内置了Ribbon依赖),就可以使用Ribbon客户端负载均衡......
  • rpc项目中的负载均衡算法
    一致性hash算法(根据IP一致性hash)一致性哈希策略的实现方式:我们先把服务列表中的地址进行哈希计算,把计算后的值放到哈希环上,接收到请求后,根据请求的固定属性值来进行哈希计......
  • HCIA学习笔记二十六:手工负载分担模式二层链路聚合
    一、链路聚合的应用场景• 链路聚合一般部署在核心结点,以便提升整个网络的数据吞吐量。二、链路聚合• 链路聚合能够提高链路带宽,增强网络可用性,支持负载分担。三......
  • 负载均衡
    三、什么Ribbon?Ribbon是基于Netflixribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflixf发布的开源项目,主要功能是提供醍醐的的软件负载均衡算法和服务调......
  • 直方图均衡化
    1.背景直方图均衡化在图像增强方面有着很重要的应用。一些拍摄得到的图片,我们从其直方图可以看出,它的分布是集中于某些灰度区间,这导致人在视觉上感觉这张图的对比度不高......