CentOS7.6 HAproxy-7层负载均衡集群——实施方案
目录
1、前期环境准备
1.准备4台主机
1. 设置主机名
2. 设置IP地址然后重启网卡
3. 关闭防火墙和selinux
4. 全部的服务器完成时间统一
二、配置haproxy(192.168.200.11)服务器
1. 安装haproxy
2. haproxy 配置中分成五部分内容
3. 配置HAproxy(192.168.200.11)
配置文件内容注释(详细内容还请自行查询)
4. 设置HTTP服务器IP地址映射主机名
三、配置HTTP服务器
1. 两台服务器安装httpd服务并启动(192.168.200.23web1 192.168.200.34web2)
2. 设置默认主页
四、测试结果
1. 客户端(192.168.200.10)安装elinks( 是一个基于文本的网页浏览器)
2. 使用elinks访问haproxy服务器
1、前期环境准备
1.准备4台主机
| IP地址 | 主机名 | 角色 | 内存 |
| 192.168.200.10 | clinent | 客户端 | 2G |
| 192.168.200.11 | server | HAproxy服务器 | 2G |
| 192.168.200.23 | web1 | web服务1 | 2G |
| 192.168.200.34 | web2 | web服务2 | 2G |
1. 设置主机名
hostnamectl set-hostname +主机名su
2. 设置IP地址然后重启网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33systemctl restart network
3. 关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalldsetenforce 0vim /etc/selinux/config 注释加'#' SELINUX=enforcing添加 SELINUX=disabled
4. 全部的服务器完成时间统一
ntpdate cn.ntp.org.cn
二、配置HAproxy(192.168.200.11)服务器
1. 安装HAproxy
yum install haproxy -y

2. haproxy 配置中分成五部分内容
global: 设置全局配置参数,属于进程的配置,通常是和操作系统相关。
defaults:配置默认参数,这些参数可以被用到frontend,backend,Listen组件。
frontend:接收请求的前端虚拟节点,Frontend可以更加规则直接指定具体使用后端的。backend;
backend:后端服务集群的配置,是真实服务器,一个Backend对应一个或者多个实体服务器。
Listen :frontend和backend的组合体。
3. 配置HAproxy(192.168.200.11)
vim /etc/haproxy/haproxy.cfg删除文件里所有的内容
添加新的配置内容
globallog 127.0.0.1 local3 infomaxconn 4096uid nobody
# uid 99gid nobody
# gid 99daemonnbproc 1pidfile /run/haproxy.pid
defaultslog globalmode httpmaxconn 2048retries 3option redispatchcontimeout 5000clitimeout 50000srvtimeout 50000
#timeout connect 5000
#timeout client 50000
#timeout server 50000option abortonclosestats uri /admin?statsstats realm Private landsstats auth admin:passwordstats hide-versionfrontend http-inbind 0.0.0.0:80mode httplog globaloption httplogoption httpcloseacl html url_reg -i \.html$use_backend html-server if htmldefault_backend html-serverbackend html-servermode httpbalance roundrobinoption httpchk GET /index.htmlcookie SERVERID insert indirect nocacheserver html-A web1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5server html-B web2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5重启haproxy服务
systemctl start haproxy.service
配置文件内容注释(详细内容还请自行查询)
# 全局设置(global)
global
# 日志配置,发送到本地的 syslog 服务
log 127.0.0.1 local3 info
# 最大连接数
maxconn 4096
# 运行用户和用户组
uid nobody
gid nobody
# 守护进程模式运行
daemon
# 进程数
nbproc 1
# PID 文件位置
pidfile /run/haproxy.pid# 默认设置(defaults)
defaults
# 使用全局日志配置
log global
# 工作模式为 HTTP
mode http
# 前端最大连接数
maxconn 2048
# 请求重试次数
retries 3
# 启用请求重新分发
option redispatch
# 连接超时时间(毫秒)
contimeout 5000
# 客户端超时时间(毫秒)
clitimeout 50000
# 服务器超时时间(毫秒)
srvtimeout 50000
# 断开连接选项
option abortonclose# 统计页面配置
stats uri /admin?stats
stats realm Private lands
stats auth admin:password
stats hide-version# 前端配置(frontend http-in)
frontend http-in
# 监听地址和端口
bind 0.0.0.0:80
# 工作模式
mode http
# 日志配置
log global
# 启用 HTTP 日志
option httplog
# 启用 HTTP 连接关闭选项
option httpclose
# ACL 匹配 .html 结尾的请求
acl html url_reg -i \.html$
# 使用后端条件
use_backend html-server if html
# 默认后端
default_backend html-server# 后端配置(backend html-server)
backend html-server
# 工作模式
mode http
# 负载均衡算法
balance roundrobin
# HTTP 健康检查
option httpchk GET /index.html
# Cookie 会话保持
cookie SERVERID insert indirect nocache
# 后端服务器定义:服务器ID,避免rr算法将客户机请求转发给其他服务器 ,对后端服务器的健康状况检查间隔为2000毫秒,连续2次健康检查成功,则认为是有效的,连续5次健康检查失败,则认为服务器宕机
server html-A web1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
server html-B web2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5





4. 设置HTTP服务器IP地址映射主机名
vim /etc/hosts原内容不动添加
192.168.200.23 web1
192.168.200.34 web2

三、配置web服务器
1. 两台服务器安装httpd服务并启动(192.168.200.23web1 192.168.200.34web2)
yum install httpd -ysystemctl start httpd设置开机自启动
systemctl enable httpd
2. 设置默认主页
web1echo web1 > /var/www/html/index.htmlweb2echo web2 > /var/www/html/index.html
四、测试结果
1..查看HAproxy状态
http://192.168.200.11/admin?stats

2. 客户端(192.168.200.10)安装elinks( 是一个基于文本的网页浏览器)
yum install -y elinks
3. 使用elinks访问HAproxy服务器
elinks --dump http://192.168.200.11

相关文章:
CentOS7.6 HAproxy-7层负载均衡集群——实施方案
目录 1、前期环境准备 1.准备4台主机 1. 设置主机名 2. 设置IP地址然后重启网卡 3. 关闭防火墙和selinux 4. 全部的服务器完成时间统一 二、配置haproxy(192.168.200.11)服务器 1. 安装haproxy 2. haproxy 配置中分成五部分内容 3. 配置HAproxy(192.168.2…...
升级ubuntu22.10到24.04
将所有kinetic换成noble,noble是24.04源,sed或手动改。 cd /etc/aptgrep -nr kinetic将old-releases.ubuntu.com替换成国内的地址,因为2210国内源没找到,没有了,但是现在更新到24.04,国内是有的。 apt up…...
YOLO好像也没那么难?
“学YOLO的念头是想整个游戏外挂!” 目录 基本原理 模型推理 IOU交并比 NMS非极大值抑制 模型训练 损失函数LOSS 代码实现 YOLO学习渠道 基本原理 模型推理 学习一个新的神经网络结构,作者认为整明白输入和输出是怎么回事就OK了,至于…...
html编写贪吃蛇页面小游戏(可以玩)
<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>贪吃蛇小游戏</title><style>body {…...
【淘宝购买的源码靠谱吗】
文章目录 前言一、项目需求二、卖家评价三、价格质量四、源码细节五、技术支持六、合法性七、市场环境八、风险评估总结 前言 在淘宝上购买的源码质量和可靠性存在不确定性。淘宝作为一个综合性电商平台,提供了各种各样的商品和服务,包括源代码。然而&a…...
C++ | list
前言 本篇博客讲解cSTL中的list 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见📝 🎉欢迎大家点赞&…...
Vue3 v-bind 指令用法
在 Vue 3 中,v-bind 指令用于将表达式的值绑定到 DOM 元素的属性上。这个指令的语法与 Vue 2 相同,但有一些细微的变化和改进。 以下是 Vue 3 中 v-bind 指令的基本用法: 基本用法: <button v-bind:class"{ active: isActive }"…...
通过Go示例理解函数式编程思维
一个孩子要尝试10次、20次才肯接受一种新的食物,我们接受一种新的范式,大概不会比这个简单。-- 郭晓刚 《函数式编程思维》译者 函数式编程(Functional Programming, 简称fp)是一种编程范式,与命令式编程(Imperative Programming)、面向对象编…...
刷题DAY7
三角形面积 题目:已知三角形的边长a,b和从、,求其面积 输入:输入三个实数a,b,c,表示三边长 输出:输出面积,保留三位小数 输入:1 2 2.5 输出࿱…...
离线数据开发流程小案例-图书馆业务数据
参考 https://blog.csdn.net/m53931422/article/details/103633452 https://www.cnblogs.com/jasonlam/p/7928179.html https://cwiki.apache.org/confluence/display/Hive/LanguageManualUDF https://medium.com/jackgoettle23/building-a-hive-user-defined-function-f6abe9…...
GPT-5:未来已来,你准备好了吗
GPT-5:未来已来,你准备好了吗? 在人工智能的浩瀚星空中,自然语言处理(NLP)技术如同璀璨星辰,不断引领着技术革新的浪潮。而在这股浪潮中,OpenAI的GPT(Generative Pre-tr…...
白骑士的Matlab教学高级篇 3.2 并行计算
系列目录 上一篇:白骑士的Matlab教学高级篇 3.1 高级编程技术 并行计算是一种通过同时执行多个计算任务来加速程序运行的方法。在MATLAB中,并行计算工具箱(Parallel Computing Toolbox)提供了丰富的并行计算功能,使用…...
JS中【解构赋值】知识点解读
解构赋值(Destructuring Assignment)是 JavaScript 中一种从数组或对象中提取数据的简便方法,可以将其赋值给变量。这种语法可以让代码更加简洁、清晰。下面我会详细讲解解构赋值的相关知识点。 1. 数组解构赋值 数组解构赋值允许你通过位置…...
【Pyspark-驯化】一文搞懂Pyspark中对json数据处理使用技巧:get_json_object
【Pyspark-驯化】一文搞懂Pyspark中对json数据处理使用技巧:get_json_object 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 …...
第10章 无持久存储的文件系统 (1)
目录 前言 10.1 proc文件系统 10.1.1 /proc 内容 本专栏文章将有70篇左右,欢迎关注,查看后续文章。 前言 即存在于内存中的文件系统。如: proc: sysfs: 即/sys目录。 内容不一定是ASCII文本,可能是二进…...
如何把命令行创建python虚拟环境与pycharm项目管理更好地结合起来
1. 问题的提出 我在linux或windows下的某个目录如“X”下使用命令行的方式创建了一个python虚拟环境(参考文章),对应的目录为myvenv, 现在我想使用pycharm创建python项目myproject,并且利用虚拟环境myvenv,怎么办&…...
keepalived+lvs高可用负载均衡集群配置方案
配置方案 一、配置主备节点1. 在主备节点上安装软件2. 编写配置文件3. 启动keepalived服务 二、配置web服务器1. 安装并启动http服务2. 编写主页面3.配置虚拟地址4. 配置ARP 三、测试 服务器IP: 主负载均衡服务器 master 192.168.152.71备负载均衡服务器 backup 192…...
Azure OpenAI Swagger Validation Failure with APIM
题意:Azure OpenAI Swagger 验证失败与 APIM 问题背景: Im converting the Swagger for Azure OpenAI API Version 2023-07-01-preview from json to yaml 我正在将 Azure OpenAI API 版本 2023-07-01-preview 的 Swagger 从 JSON 转换为 YAML。 My S…...
haproxy高级功能配置
介绍HAProxy高级配置及实用案例 一.基于cookie会话保持 cookie value:为当前server指定cookie值,实现基于cookie的会话黏性,相对于基于 source 地址hash 调度算法对客户端的粒度更精准,但同时也加大了haproxy负载,目前此模式使用…...
XXL-JOB分布式定时任务框架快速入门
文章目录 前言定时任务分布式任务调度 1、XXL-JOB介绍1.1 XXL-JOB概述1.2 XXL-JOB特性1.3 整体架构 2、XXL-JOB任务中心环境搭建2.1 XXL-JOB源码下载2.2 IDEA导入xxljob工程2.3 初始化数据库2.4 Docker安装任务管理中心 3、XXL-JOB任务注册测试3.1 引入xxl-job核心依赖3.2 配置…...
从定时器到任务调度:用Qt QTimer和QThreadPool构建一个轻量级后台任务管理器
从定时器到任务调度:用Qt QTimer和QThreadPool构建轻量级后台任务管理器 在开发中型Qt应用时,后台任务管理往往成为架构设计的痛点。当简单的定时器无法满足复杂业务需求,当主线程被耗时任务拖累导致界面卡顿,开发者需要一套更优雅…...
保姆级教程:NLI-DistilRoBERTa快速部署与简单调用指南
保姆级教程:NLI-DistilRoBERTa快速部署与简单调用指南 1. 项目概述与核心能力 NLI-DistilRoBERTa是基于DistilRoBERTa模型的自然语言推理(Natural Language Inference)Web服务,专门用于分析两个句子之间的逻辑关系。这个轻量级模型保留了RoBERTa模型90…...
跨境电商多语种支持:SenseVoice-Small ONNX语音识别模型部署与本地化适配
跨境电商多语种支持:SenseVoice-Small ONNX语音识别模型部署与本地化适配 1. 环境准备与快速部署 SenseVoice-Small ONNX模型是一个经过量化处理的高效语音识别解决方案,特别适合跨境电商场景中的多语言语音处理需求。这个模型支持超过50种语言&#x…...
Unsloth Docker部署详解:从零开始搭建训练环境
Unsloth Docker部署详解:从零开始搭建训练环境 1. 环境准备与Docker安装 1.1 系统要求检查 在开始之前,请确保你的系统满足以下基本要求: 64位Linux系统(推荐Ubuntu 22.04)NVIDIA显卡驱动已安装(建议版…...
如何快速解锁原神60帧限制:免费开源工具终极指南
如何快速解锁原神60帧限制:免费开源工具终极指南 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 想要在《原神》中体验120帧甚至更高帧率的流畅游戏画面吗?genshi…...
uStepper S开源库深度解析:闭环步进控制与TMC2130驱动实战
1. uStepper S 开源驱动库深度解析:面向嵌入式工程师的实战指南 uStepper S 是一款集成了高性能步进电机驱动、高精度磁编码器反馈、ARM Cortex-M0 微控制器(NXP LPC11U35)与丰富外设接口的智能运动控制模块。其配套的 uStepper S Arduino…...
CI/CD 流水线性能优化:从构建到部署
CI/CD 流水线性能优化:从构建到部署 前言 哥们,别整那些花里胡哨的理论。今天直接上硬菜——我在大厂一线优化 CI/CD 流水线性能的真实经验总结。作为一个白天写前端、晚上打鼓的硬核工程师,我对效率的追求就像对鼓点节奏的把控一样严格。 背…...
OpenClaw任务编排:GLM-4.7-Flash复杂流程设计
OpenClaw任务编排:GLM-4.7-Flash复杂流程设计 1. 为什么需要任务编排 去年我接手了一个市场分析项目,需要每周手动收集竞品动态并生成报告。重复性的复制粘贴和格式调整消耗了大量时间,直到发现OpenClaw可以通过编排GLM-4.7-Flash模型实现全…...
51单片机项目避坑:用ADC0804读PT100信号,你的滤波和标度变换做对了吗?(附源码分析)
51单片机PT100温度检测实战:从ADC采样到标度变换的完整设计解析 在工业温度测量领域,PT100凭借其优异的线性度和稳定性成为首选传感器之一。不同于常见的DS18B20数字温度传感器,PT100需要配合精密信号调理电路和AD转换器才能实现准确测量。本…...
Qt 5.12.8在Linux下编译qtvirtualkeyboard模块,我踩过的那些坑(附完整解决方案)
Qt 5.12.8在Linux下编译qtvirtualkeyboard模块的深度实践指南 当你在嵌入式或跨平台开发中突然发现系统自带的Qt缺少虚拟键盘模块时,那种感觉就像在沙漠里找到一瓶水却发现没带开瓶器。本文将带你深入探索在aarch64架构的Linux系统中,如何为预装的Qt 5.1…...

