• LVS-NAT模式部署


    说明

    部署LVS服务,使用NAT模式工作,

    主机列表

    主机名IP地址角色
    clienteth0 192.168.4.10/24客户端
    proxyeth0 192.168.4.5/24
    eth1 192.168.2.5/24
    DS(调度服务器)
    默认网关
    web1eth0 192.168.2.100/24
    gateway 192.168.2.5
    web服务器
    web2eth0 192.168.2.200/24
    gateway=192.168.2.5
    web服务器




    软件环境

    软件名称版本
    centos7.5
    httpd2.4.6
    ipvsadm1.27




    拓扑图

    在这里插入图片描述





    项目介绍

    web1、web2提供httpd服务
    proxy安装LVS软件,成为调度服务器,以NAT的模式,轮询(rr)的算法工作
    client访问proxy的调度器,轮询出现web1、web2的界面





    部署步骤

    1.web1修改IP地址为192.168.2.100/24,网关改为192.168.2.5,关闭防火墙,关闭selinux,安装httpd软件,写入测试页面

    [root@web1 ~]# sed -i '/IPADDR/c IPADDR=192.168.2.100' /etc/sysconfig/network-scripts/ifcfg-eth0 #修改IP地址
    [root@web1 ~]# sed -i '/GATEWAY/c GATEWAY=192.168.2.5' /etc/sysconfig/network-scripts/ifcfg-eth0 #修改网关地址
    说明
    网关必须改,不然实验成功不了
    
    [root@web1 ~]# systemctl restart network #重启网卡
    [root@web1 ~]# ip a s #检查IP地址
    [root@web1 ~]# route -n #检查网关
    
    [root@web1 ~]# systemctl stop firewalld && systemctl disable firewalld #关闭防火墙,禁止自动启动
    
    [root@web1 ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config #关闭selinux,重启后生效
    
    [root@web1 ~]# yum -y install httpd #安装httpd软件
    [root@web1 ~]# echo "192.168.2.100-web1" > /var/www/html/index.html #写入测试文件
    [root@web1 ~]# systemctl start httpd #启动http服务
    [root@web1 ~]# systemctl enable httpd #设置http服务开机自启
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17


    2.web2修改IP地址为192.168.2.200/24,网关改为192.168.2.5,关闭防火墙,关闭selinux,安装httpd软件,写入测试文件

    [root@web2 ~]# sed -i '/IPADDR/c IPADDR=192.168.2.200' /etc/sysconfig/network-scripts/ifcfg-eth0 #修改IP地址
    [root@web2 ~]# sed -i '/GATEWAY/c GATEWAY=192.168.2.5' /etc/sysconfig/network-scripts/ifcfg-eth0 #修改网关地址
    说明
    网关必须改,不然实验成功不了
    
    [root@web2 ~]# sed -n 'p' /etc/sysconfig/network-scripts/ifcfg-eth0 #检查配置
    [root@web2 ~]# systemctl restart network #重启网卡
    [root@web2 ~]# ip a s #查看IP地址
    [root@web2 ~]# route -n #查看路由表
    
    [root@web2 ~]# systemctl stop firewalld && systemctl disable firewalld #关闭防火墙,禁止开机启动
    
    [root@web2 ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config #关闭selinux,重启后生效
    [root@web2 ~]# sed -n 'p' /etc/selinux/config #检查配置
    
    [root@web2 ~]# yum -y install httpd #安装httpd软件
    [root@web2 ~]# echo "192.168.2.200-web2" > /var/www/html/index.html #写入测试页面
    [root@web2 ~]# systemctl start httpd #启动http服务
    [root@web2 ~]# systemctl enable httpd #设置开机自启
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19


    3.proxy有两张网卡,eth0网卡修改IP地址为192.168.4.5/24,eth1网卡修改地址为192.168.2.5/24

    [root@proxy ~]# sed -i '/IPADDR/c IPADDR=192.168.4.5' /etc/sysconfig/network-scripts/ifcfg-eth0 #修改eth0网卡IP地址
    [root@proxy ~]# sed -i '/PREFIX/c PREFIX=24' /etc/sysconfig/network-scripts/ifcfg-eth0 #修改eth0网卡子网掩码
    
    [root@proxy ~]# nmcli connection add type ethernet ifname eth1 con-name eth1
    [root@proxy ~]# sed -i '/BOOTPROTO/s/dhcp/none/' /etc/sysconfig/network-scripts/ifcfg-eth1 #修改eth1网卡获取IP地址为静态IP
    [root@proxy ~]# sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth1 #删除eth1网卡UUID字段
    [root@proxy ~]# sed -i '$a IPADDR=192.168.2.5' /etc/sysconfig/network-scripts/ifcfg-eth1 #在文件最后一行写入IP地址
    [root@proxy ~]# sed -i '$a PREFIX=24' /etc/sysconfig/network-scripts/ifcfg-eth1 #在文件最后一行写入子网掩码
    [root@proxy ~]# systemctl restart network #重启网卡
    [root@proxy ~]# ip a s #查看IP地址
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10


    4.proxy开启路由转发功能,实现web1、web2服务器和外网进行通信,此功能默认是没有打开的

    [root@proxy ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf  #修改内核参数,开启路由转发
    [root@proxy ~]# sysctl -p  #刷新配置
    
    • 1
    • 2


    5.proxy关闭防火墙,关闭selinux

    [root@proxy ~]# systemctl stop firewalld && systemctl disable firewalld #关闭防火墙,禁止开机自启
    
    [root@proxy ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config #关闭selinux,重启后生效
    [root@proxy ~]# sed -n 'p' /etc/selinux/config #检查配置
    
    • 1
    • 2
    • 3
    • 4


    6.proxy安装ipvsadm,创建虚拟服务器

    [root@proxy ~]# yum -y install ipvsadm.x86_64 #安装ipvsadm
    说明
    ipvsadm已经被集成到了Centos7的安装包中,直接yum安装即可
    
    [root@proxy ~]# ipvsadm -A -t 192.168.4.5:80 -s wrr #创建虚拟服务器
    说明
    -A(add)是创建添加虚拟服务器集群
    -t(tcp)后面指定集群VIP的地址和端口,协议是tcp协议
    -s后面指定调度算法,如rr(轮询)、wrr(加权轮询)、lc(最少连接)、wlc(加权最少连接)等
    
    [root@proxy ~]# ipvsadm -Ln  #查看规则
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11


    7.proxy虚拟服务器加入真实节点服务器

    [root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -w 1 -m
    [root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -w 1 -m
    [root@proxy ~]# ipvsadm -Ln
    
    • 1
    • 2
    • 3

    说明
    -a(add)往虚拟服务器集群中添加后端真实服务器IP,指定往-t 192.168.4.5:80这个集群中添加
    -r(real)后面跟后端真实服务器的IP和端口,这里不写端口默认是80端口
    -w(weight)指定服务器的权重,权重越大被访问的次数越多,英语词汇:weight(重量,分量)
    -m指定集群工作模式为NAT模式,如果是-g则代表使用DR模式,-i代表TUN模式

    8.客户端使用curl访问http://192.168.4.5:80,web1和web2的测试界面轮询出现,表示配置成功
    [root@client ~]# curl 192.168.4.5:80

  • 相关阅读:
    python小玩意——图片转素描
    Java Map集合面试题汇总
    数据分析全貌
    tomcat常用配置详解和优化方法
    day01-4-订座功能
    TypeScript基础入门
    【JavaScript-33】js中字符串的常用方法
    【js】解决读取文件源内容总是得到默认index.html
    升哲科技城市级“算力+数字底座”服务亮相2023服贸会
    Hinton2022年RobotBrains访谈记录
  • 原文地址:https://blog.csdn.net/weixin_42508243/article/details/126454061