当前位置: 首页 > article >正文

高效构建与配置高可用负载均衡集群:从理论到实践的全面实施

1. 主机配置

主机IPVIP角色
本机客户端
OpenEuler-1172.25.254.10172.25.254.100虚拟服务器 (VS)
OpenEuler-2172.25.254.12172.25.254.100真实服务器 (RS1)
OpenEuler-3172.25.254.13172.25.254.100真实服务器 (RS2)

2. 真实服务器 (RS) 配置与优化
# 安装与配置 Nginx
[root@OpenEuler-2-3 ~]# yum install nginx -y

[root@OpenEuler-2-3 ~]# echo "My ip is `hostname -I`" > /usr/share/nginx/html/index.html

# 启动
[root@OpenEuler-2-3 ~]# systemctl enable --now nginx

# 测试
[root@OpenEuler-2 ~]# curl `hostname -I`
My ip is 172.25.254.12/My ip is 172.25.254.13
2.1 设置虚拟 IP (VIP)
[root@OpenEuler-1-3 ~]# nmcli con add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 172.25.254.100/32
2.2 关闭 ARP 响应
[root@OpenEuler-2-3 ~]# vim + /etc/sysctl.conf
# 添加以下内容
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.dummy1.arp_ignore = 1
net.ipv4.conf.dummy1.arp_announce = 2

# 使其生效
sysctl -p

3. 虚拟服务器 (VS) 配置与负载均衡实现

3.1 安装 IPVS 管理工具
[root@OpenEuler-1 ~]# yum install ipvsadm -y
3.2 添加负载均衡规则
[root@OpenEuler-1 ~]# ipvsadm -At 172.25.254.100:80 -s rr
[root@OpenEuler-1 ~]# ipvsadm -at 172.25.254.100:80 -r 172.25.254.12:80 -g
[root@OpenEuler-1 ~]# ipvsadm -at 172.25.254.100:80 -r 172.25.254.13:80 -g

# 检查规则
[root@OpenEuler-1 ~]# ipvsadm -Ln
TCP  172.25.254.100:80 rr
  -> 172.25.254.12:80             Route   1      0          0
  -> 172.25.254.13:80             Route   1      0          0
  
# 客户端测试
[Moon]for ((i=1;i<=6;i++)); do curl 172.25.254.100; done
My ip is 172.25.254.13
My ip is 172.25.254.12
My ip is 172.25.254.13
My ip is 172.25.254.12
My ip is 172.25.254.13
My ip is 172.25.254.12

4. 效果演示

通过上述配置,成功构建了一个高可用的负载均衡集群
客户端请求通过虚拟 IP (VIP) 均匀分发到两个真实服务器 (RS1 和 RS2),实现了负载均衡和高可用性
测试结果表明,请求按轮询策略均匀分配,系统响应稳定,性能优异


http://www.kler.cn/a/550021.html

相关文章:

  • 【落羽的落羽 数据结构篇】双向链表
  • 第四期书生大模型实战营-第5关-L2G5000
  • spring session、spring security和redis整合的简单使用
  • 框架ThinkPHP(小迪网络安全笔记~
  • Unity Shader Graph 2D - Procedural程序化图形之渐变的正弦波形
  • ElasticSearch详解
  • 【python语言应用】最新全流程Python编程、机器学习与深度学习实践技术应用(帮助你快速了解和入门 Python)
  • 在c#中虚方法和抽象类的区别
  • 网络接收的流程理解
  • WEB安全--SQL注入--堆叠注入
  • Windows搭建CUDA大模型Docker环境
  • RocketMQ与kafka如何解决消息丢失问题?
  • Prometheus+Grafana+Jmeter监控服务器资源及中间件
  • 使用pyCharm创建Django项目
  • 4-制作UI
  • 推荐一些经典和实用的开源项目
  • leetcode 子集
  • Spring 和 Spring MVC 的关系是什么?
  • Windows 11 安装 Docker
  • 【线性代数】2矩阵