• centos7下通过LVS的DR模式实现负载均衡访问


    一、两台服务器作为real server ,一台作为director 

    director:172.28.18.69 vip:172.28.18.70

    real server1:172.28.18.71

    real server2:172.28.18.78

    二、两台real server上安装nginx

    配置nginx yum源

    [root@localhost ~]# vim /etc/yum.repos.d/nginx.repo
    
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1

    安装

    [root@localhost ~]# yum install -y nginx

    查看

    [root@localhost ~]# whereis nginx
    nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz
    [root@localhost ~]# 

    配置文件

    查看默认根目录页面地址

    [root@localhost ~]# vim /etc/nginx/conf.d/default.conf 
    
    server {
        listen       80;
        server_name  localhost;
    
        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

    编辑/usr/share/nginx/html/index.html

    加上本机IP地址,在测试负载均衡的时候,才知道分发到了哪台real server上

    [root@localhost ~]# vim /usr/share/nginx/html/index.html 
    
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
             35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!-71</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>

    保存、退出

    启动nginx

    [root@localhost conf.d]# nginx -c /etc/nginx/nginx.conf

    在浏览器查看

    可以显示IP了,同样172.28.18.78的服务器也安装和配置nginx

      三、在172.28.18.69上安装ipvsadm

    [root@localhost mysql-5.7.26]# yum install -y ipvsadm
    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.tuna.tsinghua.edu.cn
     * extras: mirrors.huaweicloud.com
     * updates: mirrors.tuna.tsinghua.edu.cn
    base                                                                                | 3.6 kB  00:00:00     
    extras                                                                              | 3.4 kB  00:00:00     
    updates                                                                             | 3.4 kB  00:00:00     
    正在解决依赖关系
    --> 正在检查事务
    ---> 软件包 ipvsadm.x86_64.0.1.27-7.el7 将被 安装
    --> 解决依赖关系完成
    
    依赖关系解决
    
    ===========================================================================================================
     Package                  架构                    版本                         源                     大小
    ===========================================================================================================
    正在安装:
     ipvsadm                  x86_64                  1.27-7.el7                   base                   45 k
    
    事务概要
    ===========================================================================================================
    安装  1 软件包
    
    总下载量:45 k
    安装大小:75 k
    Downloading packages:
    ipvsadm-1.27-7.el7.x86_64.rpm                                                       |  45 kB  00:00:00     
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
    警告:RPM 数据库已被非 yum 程序修改。
    ** 发现 2 个已存在的 RPM 数据库问题, 'yum check' 输出如下:
    2:postfix-2.10.1-7.el7.x86_64 有缺少的需求 libmysqlclient.so.18()(64bit)
    2:postfix-2.10.1-7.el7.x86_64 有缺少的需求 libmysqlclient.so.18(libmysqlclient_18)(64bit)
      正在安装    : ipvsadm-1.27-7.el7.x86_64                                                              1/1 
      验证中      : ipvsadm-1.27-7.el7.x86_64                                                              1/1 
    
    已安装:
      ipvsadm.x86_64 0:1.27-7.el7                                                                              
    
    完毕!

    四、配置虚拟服务器

    [root@director ~]# ipvsadm -A -t 172.28.18.70:80 -s rr

    增加一个虚拟服务器 172.28.18.69, -A:增加一个虚拟服务器  -t:tcp协议 -s:分发算法 rr 轮询

    五、增加后端实际服务器

    [root@director ~]# ipvsadm -a -t 172.28.18.70:80 -r 172.28.18.71:80 -g -w 1
    [root@director ~]# ipvsadm -a -t 172.28.18.70:80 -r 172.28.18.78:80 -g -w 1

    -a :增加后端服务器 -t:对应的虚拟服务器IP -r :对应的后端服务器IP -g: DR模式 -w:权重

    六、查看配置规则

    [root@director home]# ipvsadm -Ln
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    TCP 172.28.18.70:80 rr
    -> 172.28.18.71:80 Route 1 0 0
    -> 172.28.18.78:80 Route 1 0 0

    七、设置director分发器的虚拟IP到设备em1:0

    [root@director home]# ip addr add 172.28.18.70 dev em1:0
    [root@director home]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 14:fe:b5:dc:2c:77 brd ff:ff:ff:ff:ff:ff
        inet 172.28.18.69/28 brd 172.28.18.79 scope global noprefixroute em1
           valid_lft forever preferred_lft forever
        inet 172.28.18.70/32 scope global em1
           valid_lft forever preferred_lft forever
        inet6 fe80::b3e8:e3b2:2242:a2ed/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    3: em2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
        link/ether 14:fe:b5:dc:2c:79 brd ff:ff:ff:ff:ff:ff
    4: em3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
        link/ether 14:fe:b5:dc:2c:7b brd ff:ff:ff:ff:ff:ff
    5: em4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
        link/ether 14:fe:b5:dc:2c:7d brd ff:ff:ff:ff:ff:ff

    ip -a 查看,172.28.18.70已经绑定到em1:0上了

    此时,在其他机器上测试curl 172.28.18.70,还是不通,是因为在后端服务器上还需要设置虚拟IP绑定到回环接口上

    八、绑定虚拟IP到后端服务器的回环接口上

    [root@server-1 html]# ip addr add 172.28.18.70 dev lo:0

    九、在其他服务器上测试172.28.18.70

    [root@zabbix_server ~]# curl 172.28.18.70
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
    body {
    35em;
    margin: 0 auto;
    font-family: Tahoma, Verdana, Arial, sans-serif;
    }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!-71</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>

    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>

    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>

    分发到71上

    [root@zabbix_server ~]# curl 172.28.18.70
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
    body {
    35em;
    margin: 0 auto;
    font-family: Tahoma, Verdana, Arial, sans-serif;
    }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!-78</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>

    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>

    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>

    再次请求,分发到78上。至此lvsDR模式负载均衡配置完成。

  • 相关阅读:
    【REST详述及RESTful规范】
    【Vue CLI】从安装到构建项目再到目录结构的说明
    【Webpack】
    【npm】安装、搭建独立项目环境
    【Node.js安装步骤】
    【Vue路由系统详述】
    【Python实现图片验证码】
    【Vue实例生命周期】
    【Vue组件系统】
    Java实现几种常见排序方法
  • 原文地址:https://www.cnblogs.com/sky-cheng/p/10905063.html
Copyright © 2020-2023  润新知