阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux基础教程之利用keepalived实现主/从和主/主模式的高性能负载均衡集群实战手册

83次阅读
没有评论

共计 3409 个字符,预计需要花费 9 分钟才能阅读完成。

要求:

1、使用 nginx 的反向代理功能实现负载均衡

2、keepalived 实现高可用

       第一组的虚拟地址为 172.16.1.100

            D 设备的优先级高

       第二组的虚拟地址为 172.16.1.110

            E 设备的优先级高

3、分别实现主 / 从和主 / 主两种配置

集群拓扑:

     

第一种:主 / 从配置

所有配置之前先在各个主机上进行时间同步

 ntpdate 时间服务器地址

一、后端 real server(A、B、C)配置

   1、在 A、B、C 三台主机上安装 httpd 包

    yum install httpd

   2、配置虚拟主机

       vim /etc/httpd/conf.d/vir.conf

      A 主机:

       

     B 主机

       

     C 主机

        

   3、创建三主机的 URL 目录及主页面

   A 主机

     mkdir  -pv /data/web/

         vim /data/web/index.html

         内容为 This is Vhost1

   B 主机

     mkdir  -pv /data/web/

         vim /data/web/index.html

         内容为 This is Vhost2

   C 主机

     mkdir  -pv /data/web/

         vim /data/web/index.html

         内容为 This is Vhost3

注意:三主机主页面不同,是为了后面实验来区分不同的 real server

启动 httpd 服务:systemctl  start  httpd.service

二、配置负载均衡节点

         D(此主机为 MASTER)

  E(此主机为 BACKUP)主机

  利用 nginx 的 ngx_http_upsteam_module 模块实现负载均衡

1、安装 nginx 包

            在 D、E 主机上分别安装

            yum install nginx

2、配置负载均衡

           在 D、E 主机上分别安装

   vim /etc/nginx/nginx.conf

   定义 websvr 组:

    upstream websvr {

          server 192.168.70.137:80;

          server 192.168.70.138:80;

          server 192.168.70.140:80;

         }

   反向代理组 websvr

       location / {

             proxy_pass http://websvr;

        }

    

三、配置 keepalived 服务

      1、全局配置

  主机 D 上

  

         主机 E 上配置

         

     2、分别在两个主机上定义脚本 chk_down

         此脚本的功能:

            文件 /etc/keepalived/down 存在时:虚拟 IP 转义到另一个节点

         vrrp_script chk_down {

              script“[[-f /etc/keepalived/down]] && exit 1 || exit 0”

               interval 1

               weight -10

            }

      3、分别在两个主机上定义脚本 chk_ngx

         此脚本功能:

           确认 nginx 服务是否正运行

          vrrp_script chk_ngx {

              script“killall -0 nginx && exit 0 || exit 1”

              interval 1

              weight -10

              fall 2

              rise 1

          }

          

      4、vrrp_instance 配置

         D 主机

         

        E 主机

        

     5、创建 notify 警告配置脚本

         分别在两个主机上创建

         vim  /etc/keepalived/notify.sh

          

         chmod +x notify.sh 给予此脚本执行权限

6、启动服务

  systemctl start keepalived.service

四、测试

  1、不做修改时,即主机 D 上没有 /etc/keepalived/down 文件

      (1)、查看虚拟 IP 位置

            在主机 D 上(此主机为 MASTER)

             

    在主机 E 上(此主机为 BACKUP)

     

通过对比可以看到虚拟 IP 在 D 主机上

(2)、查看 nginx 是否启动

     通过脚本 /etc/keepalived/notify.sh 可以看到哪台主机成为 MASTER 状态,哪台主机就自动启动 nginx 服务

    主机 D

    

    主机 E

    

通过对比可以知道主机 D 上的 nginx 服务启动,而主机 E 上的 nginx 服务为启动

(3)访问 URL

     curl  http:/172.16.1.10

     

     2、在主机 D 上创建 /etc/keepalived/down 文件

         touch  /etc/keepalived/down

        (1)、查看虚拟 IP 位置

            在主机 D 上(此主机为 MASTER)

            

 在主机 E 上(此主机为 BACKUP)

            

 通过对比可以看到虚拟 IP 在 E 主机上

(2)、查看 nginx 是否启动

      主机 D

           

             主机 E 上

          

       通过对比可以知道主机 E 上的 nginx 服务启动,而主机 D 上的 nginx 服务为启动

(3)访问 URL

     curl  http:/172.16.1.100

         

         能正常访问,现实了高性能

第二部分实现主 / 主配置

一、增加配置在 D、E 主机上

    1、在原有的配置基础上增加一个 vrrp_instance 配置

        在主机 D 上配置

       

        在主机 E 上配置

       

    2、修改警告配置脚本

      将 backup 时停止 nginx 服务改为启动 nginx 服务

       

二、检测

   1、不做修改时,即主机 D 和 E 上都没有 /etc/keepalived/down 文件

     (1)、查看虚拟 IP 位置

      在主机 D 上

      

     在主机 E 上

      

通过对比看到:

    虚拟 IP:172.16.1.100 在主机 D 上

           虚拟 IP:172.16.1.110 在主机 E 上

(2)查看 nginx 服务状态

          主机 D、E 的 nginx 服务都处于启动状态

          

(3)访问 URL

      curl  http:/172.16.1.100

            

     curl  http:/172.16.1.110

             

           能正常访问,现实了高性能

    2、在主机 D 上创建 /etc/keepalived/down 文件

        (1)、查看虚拟 IP 位置

            在主机 D 上

           

         在主机 E 上

           

通过对比看到:

    虚拟 IP:172.16.1.100 在主机 E 上

           虚拟 IP:172.16.1.110 在主机 E 上

(2)查看 nginx 服务状态

          主机 D、E 的 nginx 服务都处于启动状态

         

(3)访问 URL

      curl  http:/172.16.1.100

            

     curl  http:/172.16.1.110

             

             能正常访问,现实了高性能

    3、在主机 E 上创建 /etc/keepalived/down 文件

          (1)、查看虚拟 IP 位置

            在主机 D 上

           

            在主机 E 上

           

通过对比看到:

    虚拟 IP:172.16.1.100 在主机 D 上

           虚拟 IP:172.16.1.110 在主机 D 上

(2)查看 nginx 服务状态

          主机 D、E 的 nginx 服务都处于启动状态

         

(3)访问 URL

      curl  http:/172.16.1.100

            

     curl  http:/172.16.1.110

             

             能正常访问,现实了高性能

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-12-03发表,共计3409字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中