负载均衡Tengine,如何实现高效流量分配?

负载均衡Tengine

负载均衡tengine

背景介绍

负载均衡(Load Balancing)是一种在多个计算资源(如服务器、服务实例等)之间分配工作负载的方法,旨在优化资源使用率、最大化吞吐量、减少响应时间,并避免任何单一资源过载,Tengine是由淘宝网发起的Web服务器项目,它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性,Tengine的性能和稳定性已经在大型的网站如淘宝、天猫商城等得到了很好的检验,它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

Tengine与Keepalived组合

Tengine非常适合用来做七层的负载均衡,而用Keepalived来解决单点故障实现高可用,阿里云的七层负载便是用Keepalived+Tengine实现的,这两个会是很好的组合,Keepalived有主备、主主模式;这里使用主备模式:即一台出现故障,VIP实现漂移到另外一台自动接管服务。

Keepalived简介

Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层、第4层和第7层交换机的功能,主要提供loadbalancing(负载均衡)和high-availability(高可用)功能,负载均衡实现需要依赖Linux的虚拟服务内核模块(ipvs),而高可用是通过VRRP协议实现多台机器之间的故障转移服务。

配置示例

以下是一个基于Keepalived+Tengine的高可用负载均衡部署实践的示例:

环境准备

负载均衡tengine

CentOS7.9 1C1G

10.0.0.10 keepalived-tengine-master

10.0.0.11 keepalived-tengine-backup

10.0.0.12 nginx_server_1

10.0.0.13 nginx_server_2

配置步骤

1. 配置主机名

hostnamectl set-hostname keepalived-tengine-master
hostnamectl set-hostname keepalived-tengine-backup
hostnamectl set-hostname nginx_server_1
hostnamectl set-hostname nginx_server_2

2. 时间同步

负载均衡tengine
yum install -y chrony
systemctl enable chronyd --now
chronyc sources -v

3. 安装所需软件

在keepalived-tengine-master和keepalived-tengine-backup上执行:

yum install -y keepalived
systemctl start keepalived.service && systemctl enable keepalived

4. Keepalived配置

keepalived-tengine-master配置文件:

! Configuration File for keepalived
global_defs {
   router_id master                #运行Keepalived服务器的标识,自定义;
}
vrrp_script chk_nginx {                 #定义一个外部脚本
    script "/etc/keepalived/chk_nginx.sh"    #脚本的路径
    interval 1
    weight 2
}
vrrp_instance VI_1 {           #实例名称为VI_1,相同实例的备节点名字要和这个相同
    state MASTER               #状态为MASTER备节点状态需要为BACKUP
    interface eth0             #通信接口为ens33 此参数备节点设置和主节点相同
    virtual_router_id 51      #虚拟路由ID;一组集群ID号必须一样
    priority 150                  #权重BACKUP不能高于MASTER
    advert_int 1                  #检测时间间隔
    authentication {
        auth_type PASS         #认证类型
        auth_pass 1111         #认证密码同一集群密码要一样
    }
    virtual_ipaddress {
        10.0.0.100
    }                                 #配置的虚拟ip,掩码24,并绑定网卡ens33接口,别名为ens33:2 
                                   #此参数备节点设置和主节点设置相同
}
track_script {                  #定义状态跟踪,名称为vrrp_script中定义的
        chk_nginx
}

keepalived-tengine-backup配置文件:

! Configuration File for keepalived
global_defs {
   router_id backup                #运行Keepalived服务器的标识,自定义;
}
vrrp_script chk_nginx {                 #定义一个外部脚本
    script "/etc/keepalived/chk_nginx.sh"    #脚本的路径
    interval 1
    weight 2
}
vrrp_instance VI_1 {           #实例名称为VI_1,相同实例的备节点名字要和这个相同
    state BACKUP               #状态为MASTER备节点状态需要为BACKUP
    interface eth0             #通信接口为ens33 此参数备节点设置和主节点相同
    virtual_router_id 51      #虚拟路由ID;一组集群ID号必须一样
    priority 100                  #权重BACKUP不能高于MASTER
    advert_int 1                  #检测时间间隔
    authentication {
        auth_type PASS         #认证类型
        auth_pass 1111         #认证密码同一集群密码要一样
    }
    virtual_ipaddress {
        10.0.0.100
    }                                 #配置的虚拟ip,掩码24,并绑定网卡ens33接口,别名为ens33:2 
                                   #此参数备节点设置和主节点设置相同
}
track_script {                  #定义状态跟踪,名称为vrrp_script中定义的
        chk_nginx
}

检查脚本示例:

#!/bin/bash
nginx -s stop
sleep 2
nginx -s start

5. Tengine配置

在keepalived-tengine-master和keepalived-tengine-backup上执行:

wget http://tengine.taobao.org/download/tengine-2.1.0.tar.gz -P ~/software
tar zxvf Tengine-2.1.0.tar.gz
cd Tengine-2.1.0
./configure --prefix=/usr/local/tengine
make && make install

Tengine配置文件示例(/usr/local/tengine/conf/nginx.conf):

worker_processes 2;
events {
    worker_connections 1024;
}
http {
    upstream myapp {
        server 10.0.0.12;
        server 10.0.0.13;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://myapp;
        }
    }
}

通过上述步骤,我们可以实现一个基于Keepalived+Tengine的高可用负载均衡系统,该系统不仅能够提供高效的负载均衡能力,还能够确保服务的高可用性,在实际生产环境中,还需要考虑更多的因素,如安全性、监控、日志等。

到此,以上就是小编对于“负载均衡tengine”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2024-11-09 16:25
下一篇 2024-11-09 16:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信