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

基于Linux CentOS7.9 部署 Haproxy负载均衡集群

基于HAProxy的Web负载均衡集群实验方案

实验规划

环境规划

在实验环境下,保持防火墙和selinux均关闭,配置阿里云和epel镜像源

实验步骤

部署nginx后端web服务器(19.16.2.162 & 19.16.2.163)

安装nginx
yum-yinstallnginx
配置web页面

创建测试页面:

echo"Welcome to Nginx-1 (19.16.2.163)">/usr/share/nginx/html/index.htmlecho"Welcome to Nginx-2 (19.16.2.162)">/usr/share/nginx/html/index.html
启动服务:
systemctl start nginx&&systemctlenablenginx
查看进程
ss-tulanp|grepnginxpsaux|grepnginx

部署HAProxy调度器(19.16.2.164)(资源随文上传)

安装前置依赖
yum-yinstallgcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel readline-devel

lua环境安装

mkdir-pv/usr/local/srccd/usr/local/srctar-zxvflua-5.3.6.tar.gz-C/usr/srccd/usr/src/lua-5.3.6/makelinux;echo$?

makeinstallINSTALL_TOP=/usr/local/lua;echo$?

安装haproxy

编译安装
cd/usr/local/src/tar-zxvfhaproxy-2.2.14.tar.gz-C/usr/srccd/usr/src/haproxy-2.2.14/make-j$(nproc)TARGET=linux-glibcUSE_OPENSSL=1USE_ZLIB=1USE_LUA=1LUA_LIB=/usr/local/lua/lib/LUA_INC=/usr/local/lua/include/USE_PCRE=1USE_SYSTEMD=1;echo$?

makeinstallPREFIX=/usr/local/haproxy;echo$?

创建服务脚本
cd/usr/local/haproxy/cp-av/usr/src/haproxy-2.2.14/examples/haproxy.init /etc/init.d/haproxychmod+x /etc/init.d/haproxy
优化执行文件路径
cp/usr/local/haproxy/sbin/haproxy /usr/sbin/
创建用户可用于运行haproxy
useraddhaproxy-s/sbin/nologin
haproxy配置文件新版本中默认不存在需要创建
mkdir-pv/etc/haproxy/vim/etc/haproxy/haproxy.cfg# 标准化生产环境中需要查看haproxy的uid和gid,然后在配置文件中做修改.本文是基于虚拟机的实验环境,所以此处未作出修改id-uhaproxy

以下配置文件内容直接复制即可

global log127.0.0.1 local0 info maxconn256#chroot /usr/local/haproxyuid99gid99daemon defaults mode httptimeoutconnect 5000mstimeoutclient 50000mstimeoutserver 50000ms option httpclose option dontlognull option forwardfor option redispatch option abortonclose frontend http-inbind*:80 default_backend servers backend servers option httpchk GET /index.html balance roundrobin server server119.16.2.163:80 check inter2000rise2fall5server server219.16.2.162:80 check inter2000rise2fall5
启动haproxy
chkconfig--add/etc/init.d/haproxyservicehaproxy start#或haproxy-f/usr/local/haproxy/haproxy.cfg
开启haproxy的统计页面

在proxy配置文件中添加以下内容

listen stats mode httpbind0.0.0.0:9999 statsenablelog global stats uri /status stats auth haadmin:fanzc

配置文件内容全文注释
global
log 127.0.0.1 local0 info #日志输出配置,所有日志都记录在本机,通过local0输出
maxconn 256 #连接最大数
chroot /usr/local/haproxy #haproxy安装路径,一般需将此行注释掉
uid 99 #所属运行的用户uid
gid 99 #所属运行的用户组
daemon #后台运行
defaults
mode http #模式为http
timeout connect 5000ms #连接超时时间
timeout client 50000ms #客户端超时时间
timeout server 50000ms #服务器超时时间
option httpclose #每次请求完毕后主动关闭http通道
option dontlognull #不记录健康检查的日志信息
option forwardfor #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip
option redispatch #serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的连接
listen stats #配置haproxy web监控,查看统计信息
mode http #模式为http
bind 0.0.0.0:9999 #前端浏览器中查看统计的WEB界面地址
stats enable #开启状态
log global
stats uri /status #设置haproxy监控地址为http://localhost:9999/status
stats auth haadmin:fanzc #设置查看统计的账号密码,格式为’账号:密码’
frontend http-in #定义一个名为http-in的应用
bind *:80
default_backend servers #用户请求转发到名称为servers的后端模块处理
backend servers
option httpchk GET /index.html #检查服务器的index.html文件
balance roundrobin #负载均衡调度算法 轮询:roundrobin;最小连接数:leastconn;来源访问调度source
server server1 19.16.2.163:80 check inter 2000 rise 2 fall 5
server server2 19.16.2.162:80 check inter 2000 rise 2 fall 5
#check inter 2000 #表示haproxy服务器和节点之间的一个心跳频率
#rise 2 #表示两次正确证明服务器可用
#fall 3 #表示连续三次检测不到心跳频率则认为该节点失效

重启服务
servicehaproxy restart

测试

http://19.16.2.164(你的HAproxy服务器ip):9999/status
输入用户名密码haadmin:fanzc

haproxy日志配置

HAProxy可以基于rsyslog记录日志到指定的设备
修改haproxy配置文件

vim/etc/haproxy/haproxy.cfg log127.0.0.1 local3 info#在全局配置段中配置,定义日志记录级别


修改syslog的配置文件

vim/etc/rsyslog.conf...#Provides UDP syslog reception$ModLoadimudp#日志传输基于udp所以需要开启$UDPServerRun514#这里两项local3.* /var/log/haproxy.log#添加...

重启haproxy和rsyslog服务

systemctl restart rsyslogservicehaproxy restart

通过浏览器访问http://19.16.2.164:9999/status后,查看日志

tail-f/var/log/haproxy.log

验证

浏览器访问http://19.16.2.164/并F5或者ctrl+F5刷新,可以看到轮询两台nginx服务器的首页,或者在CMD中curl 19.16.2.164,输出如下:

http://www.rkmt.cn/news/1539784.html

相关文章:

  • 2026年|20款实测横比论文降AI工具怎么选?一篇攻略帮你看懂
  • ngx_event_accept
  • 物联网控制小主板 自动售货机
  • knife4j接口文档的使用
  • 2026春见耙耙柑苗木选购指南:正规供应商甄选与行业趋势分析 - 优质品牌商家
  • 马鞍山漏水检测维修权威推荐:卫生间-厨房-阳台-屋顶天花板漏水维修:靠谱防水补漏公司团队TOP5推荐(2026最新深度调研实测榜单) - 即刻修防水
  • 基于51单片机的步进电机控制系统—正/反转、加/减速
  • ControlNet-v1-1 FP16完全指南:如何在低显存下实现专业级AI图像控制
  • Logistic Regression实战指南:解决二分类落地中的特征缩放、类别不平衡与概率校准
  • 2026年组合密封圈口碑品牌甄选:技术实力与工程案例深度解析 - 优质品牌商家
  • PowerPC平台KVM/QEMU设备直通与VM Exit性能调优实战
  • 数据科学远程训练营:概念、价值与实践选择指南
  • 无动力游乐设备价格,浙江凯奇文旅性价比高,怎么选择 - myqiye
  • 探索PyPSA中的碳排放约束
  • 选购CCS集成母排,优质定制厂家浙江中燕新能源不可错过 - 工业品牌热点
  • 高级手势:PanGesture滑动、PinchGesture缩放的坐标计算(31)
  • 有实力的会议用车品牌企业,温州聚游汽车服务的优势 - mypinpai
  • Qwen3.6不生图却能生成封面:本地Agent绘图工作流实战
  • 从HX711到MCP3551:高精度称重传感器电路设计全解析
  • 注册公司服务推荐哪家,嘉简财税优势在哪 - 工业品牌热点
  • 微信群内怎么发起投票,云帆投票+西瓜评选+腾讯投票,深度测评 - 投票小程序
  • 多维聚合实战:用Python构建可演化的数据立方体
  • 【硬核进阶】别再被阻塞拖垮!一文讲透 Tokio + async/await,榨干 Rust 高并发性能
  • 大白话带你速通 Claude Code Skill:如何让你的 AI 编程助手瞬间“社会化”?
  • 免费布局写字楼光伏电站哪家强?上喜光伏实力出圈 - mypinpai
  • 随州漏水检测维修权威推荐:卫生间-厨房-阳台-屋顶天花板漏水维修:靠谱防水补漏公司团队TOP5推荐(2026最新深度调研实测榜单) - 即刻修防水
  • 2026年企业级AI API集成实践:高可靠聚合调度平台选型指南
  • 数据科学家必学的轻量级ETL流水线实战
  • 西北代理勤策软件服务多少钱?价格一览表 - 工业品牌热点
  • 手推最小二乘法:从散点图到回归公式的完整推导