
背景介绍
负载均衡(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的高可用负载均衡部署实践的示例:
环境准备

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. 时间同步

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”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复