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

实用指南:centos7.2安装HAProxy1.5.18

一、安装HAProxy
1.1 更新架构包
yum update -y

1.2 安装HAProxy
yum install haproxy -y

1.3 验证安装
haproxy -v

输出应显示HAProxy版本信息,确认安装成功。


二、部署HAProxy
2.1 主要配置文件
HAProxy的主配置文件位于 /etc/haproxy/haproxy.cfg。

2.2 编辑配置文件
vi /etc/haproxy/haproxy.cfg

2.3 完整配置示例
global
log         127.0.0.1 local2
chroot      /var/lib/haproxy
pidfile     /var/run/haproxy.pid
maxconn     4000
user        haproxy
group       haproxy
daemon
stats socket /var/lib/haproxy/stats

defaults
mode                    http

#mode表示代理模式 有三种 常用两种 http是7层代理(web服务器 httpd,tomcat等) tcp是4层代理(ssh,ftp,数据库等)
log                     global

#日志应用全局安装
option                  httplog

#启用记录HTTP请求、会话状态和计时器的功能。默认情况下,日志输入格式非常简陋,因为其仅包括源地址、目标地址和实例名称, #而“option httplog”参数将会使得日志格式变得丰富许多,其通常包括但不限于HTTP请求、连接计时器、会话状态、连接数、 #捕获的首部及cookie、“frontend”、“backend”及服务器名称,当然也包括源地址和端口号等
option                  dontlognull

#不记录空的日志
option http-server-close

#在使用长连接时,为了避免客户端超时没有关闭长连接,此能力可以使服务器端关闭长连接
option forwardfor       except 127.0.0.0/8

通过#允许在发往服务器的请求首部中插入“X-Forwarded-For”首部 一般如果是反向代理 是反向代理主机访问后端服务器 服务器获取客户端ip就 #一定是 反向代理主机 而非真正的客户主机 所以反向代理一般能够设置 将原始访问的主机ip置于该请求头 后台主机就能定位正确客户端ip。 # 除了本机访问不转发
option                  redispatch

# 在利用基于cookie定向时,一旦后端某一server宕机时,会将会话重新定向至某一上游服务器,必须采用 的选项
retries                 3

# 判断后端服务器失效的次数是重试3次
timeout http-request    10s

# 客户端http请求 不请求数据的关闭时间
timeout queue           1m

#等待的最大时长 是 1分钟
timeout connect         10s

#连接后端服务器超时时间
timeout client          1m

#客户端非活动的超时时间
timeout server          1m

#与服务器建立连接后等待响应的超时时间
timeout http-keep-alive 10s

#http长连接的保存时长
timeout check           10s
maxconn                 3000

#健康状态监测时的超时时间,过短会误判,过长资源消耗

# 监控统计页面部署
listen stats
bind *:8080#端口号不能被占用
mode http
stats enable
stats uri /haproxy
stats realm Haproxy\ Statistics
stats auth admin:your_password# 请修改密码
stats refresh 30s

# 前端服务配置 - 接收客户端请求
frontend web_frontend
bind *:80#端口号不能被占用
mode http
option forwardfor
default_backend app_servers

# 后端服务器池配置
backend app_servers
balance roundrobin#采用轮询的负载均衡算法
option httpchk GET / HTTP/1.0
server web1 192.168.1.10:80 check inter 2000 rise 2 fall 3
server web2 192.168.1.11:80 check inter 2000 rise 2 fall 3
server web3 192.168.1.12:80 check inter 2000 rise 2 fall 3

后端服务器定义, maxconn 1024表示该服务器的最大连接数, cookie 1表示serverid为1, weight代表权重(默认1,最大为265,0则表示不参与负载均衡), #check inter2000是检测心跳频率, rise 2是2次正确认为服务器可用, fall 3是3次失败认为服务器不可用.
 
# TCP负载均衡示例(如MySQL) 
listen mysql_cluster     
bind *:3306     
mode tcp     
balance leastconn     
server db1 192.168.1.20:3306 check     
server db2 192.168.1.21:3306 check

三、负载均衡算法详解
3.1 roundrobin(轮询)
balance roundrobin #是HAProxy中的负载均衡算法,意思是轮询调度。

工作原理:按顺序将每个新请求依次分配给后端服务器。

示例:

请求1 → 服务器A
请求2 → 服务器B
请求3 → 服务器C
请求4 → 服务器A
请求5 → 服务器B
... 如此循环

示例说明

假设有3台后端服务器:

backend app_servers
balance roundrobin
server web1 192.168.1.10:80 check
server web2 192.168.1.11:80 check
server web3 192.168.1.12:80 check

请求分配顺序:

第1个请求 → web1
第2个请求 → web2
第3个请求 → web3
第4个请求 → web1
第5个请求 → web2
第6个请求 → web3
... 循环往复

3.2 其他常用算法


3.3算法选择建议


3.4加权轮询示例
backend app_servers
balance roundrobin
server web1 192.168.1.10:80 check weight 3  # 处理3个请求
server web2 192.168.1.11:80 check weight 2  # 处理2个请求
server web3 192.168.1.12:80 check weight 1  # 处理1个请求

分配顺序:

请求1 → web1 (权重3)
请求2 → web1 (权重3)
请求3 → web1 (权重3)
请求4 → web2 (权重2)
请求5 → web2 (权重2)
请求6 → web3 (权重1)
请求7 → web1 (权重3)
... 循环

总结:balance roundrobin 是最简单常用的负载均衡算法,适合大多数Web应用场景,特殊是在后端服务器性能相近的情况下。

四、配置系统服务
4.1 配置日志系统
创建rsyslog配置文件:

vi /etc/rsyslog.d/haproxy.conf

添加内容:

# HAProxy日志配置
$ModLoad imudp
$UDPServerRun 514
local2.* /var/log/haproxy.log

重启rsyslog服务:

systemctl restart rsyslog

4.2 配置防火墙
# 开放HAProxy相关端口
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=8080/tcp    # 监控页面
sudo firewall-cmd --permanent --add-port=3306/tcp    # MySQL负载均衡
sudo firewall-cmd --reload

五、设置开机自启动
5.1 启用HAProxy服务
# 启用开机自启动
systemctl enable haproxy

# 启动服务
systemctl start haproxy

# 检查服务状态
systemctl status haproxy

5.2 验证服务运行
# 检查进程
ps aux | grep haproxy

# 检查端口监听
netstat -tlnp | grep haproxy

# 测试配置语法
haproxy -f /etc/haproxy/haproxy.cfg -c

六、监控和管理
6.1 访问监控页面
通过浏览器访问监控统计页面:

http://你的服务器IP:8080/haproxy

利用配置的用户名密码登录(示例中为admin/your_password)。

6.2 常用管理命令
# 启动服务
systemctl start haproxy

# 停止服务
systemctl stop haproxy

# 重启服务
systemctl restart haproxy

# 重新加载配置(不中断服务)
systemctl reload haproxy

# 查看服务日志
journalctl -u haproxy -f

七、故障排除
7.1 常见问题解决
问题1:服务启动失败

# 检查配置文件语法
haproxy -f /etc/haproxy/haproxy.cfg -c

# 查看详细错误日志
journalctl -u haproxy -n 50

问题2:无法访问监控页面

检查防火墙设置

确认绑定地址和端口

验证认证信息

问题3:健康检查失败

检查后端服务器网络连通性

确认健康检查URL是否正确

查看后端服务器日志

7.2 日志查看
# 查看HAProxy日志
tail -f /var/log/haproxy.log

关闭vi /etc/haproxy/haproxy.cfg监控配置能够看到web1和web2的轮询

# 查看系统服务日志
journalctl -u haproxy -f

八、性能优化
8.1 系统参数优化
# 编辑平台限制配置
vi /etc/security/limits.conf

# 添加以下内容
haproxy soft nofile 65536
haproxy hard nofile 65536

8.2 HAProxy性能调优
global
maxconn 100000
nbproc 2           # CPU核心数
nbthread 4         # 每个进程的线程数

defaults
maxconn 50000

报错1:

报错: hapory haproxy[43680]: /etc/rc.d/init.d/haproxy: 第 26 行:[: =: 期待一元表达式 hapory haproxy[43680]:的解决


systemctl status haproxy
报错:
hapory haproxy[43680]: /etc/rc.d/init.d/haproxy: 第 26 行:[: =: 期待一元表达式
hapory haproxy[43680]: Starting haproxy: [WARNING] 207/171141 (43688) : parsing [/etc/haproxy/haproxy.cfg:21]: keyword ‘redispatch’ is deprecated in favor 的应对方法


解决方法:
查看本地80端口有没有被被占用,如果80端口被占用会发生以上报错,需要修改vi /etc/haproxy/haproxy.cfg中的端口

http://www.zskr.cn/news/54457.html

相关文章:

  • mysql 安装python3.11和pip3.11
  • 用最纯粹的白话,解析 AI Memory
  • 2025苏州代理记账口碑榜:3 家靠谱机构/公司出圈,财税服务选对不踩坑!
  • 完整教程:电脑控制DFPlayer Mini MP3播放音乐
  • 在 RTE2025 大会,我看到了 AI 语音如何让机器学会「与人相处」丨社区来稿
  • 【C++】哈希表的搭建【开放定址法vs链地址法】
  • linux flash player
  • 2025年东营搬家公司哪家便宜?双福搬家公司,东营单位搬家/东营设备搬运/东营跨省搬家/覆盖全场景,服务东营河口/ 东营垦利/ 东营跨省搬家公司推荐
  • SharedWorker 与 Worker 的区别
  • 块状链表
  • win11为什么我的不显示虚拟机平台选项
  • 常规链表建立
  • HDLBits网站学习——Procedures
  • linux firewall
  • 2025 最新电磁灶厂家权威推荐榜:聚焦商用大功率 / 智能款,国际测评认证口碑实力双优品牌合集商用多头/商用智能/SUKIO/3500 瓦大功率/SUKI0/硕高电磁灶公司推荐
  • 移动端反射探针格式用什么比较合理
  • linux find 删除
  • 完整教程:Navicat - 连接 mysql 、 sqlserver 数据库 步骤与问题解决
  • 2025年平衡重制造企业权威推荐榜单:平衡块订做/后平衡铁工厂/尾部配重铁源头厂家精选
  • 03.入门篇-集成开发环境
  • 2025 最新祛斑加盟招商品牌权威推荐榜:国际协会测评认证 + 全链条品质标杆,创业加盟优选指南
  • 2025 激光切割机厂家 TOP5 推荐:高精度技术标杆 + 全场景适配,选型不踩坑!
  • F28379D launchpad学习记录——实时音频采集:INMP441数字MEMS麦克风为例
  • Linux中:怎么判断 Redis 主从架构是否正常
  • noexcept修饰的函数无法被catch到(只会崩溃)
  • C语言的strlen的模拟实现
  • 2025年pp阻燃管制造企业权威推荐榜单:pp灌溉管/pp管件批发/pp聚丙烯管源头厂家精选
  • python学习笔记-PyInstaller打包成软件包
  • 2025年欧标托盘定做厂家权威推荐榜单:工业木托盘/木卡板托盘/物流木托盘源头厂家精选
  • 2025 电加热器厂家最新推荐排行榜:实力制造商深度解析,覆盖多场景加热设备优质解决方案远红外/管道/远红外防爆/空气/高温高压反应釜电加热器厂家推荐