0

0

Linux HAProxy 高可用部署技巧

舞姬之光

舞姬之光

发布时间:2026-02-26 16:24:10

|

512人浏览过

|

来源于php中文网

原创

haproxy启动失败因端口权限或冲突,应授cap_net_bind_service能力而非sudo;keepalived主备失效需校准priority、vrrp_script及时间同步;http健康检查优选http-check;ssl卸载后需配置forwardfor与后端可信代理。

linux haproxy 高可用部署技巧

HAProxy 进程启动失败:bind 权限被拒或端口冲突

Linux 上非 root 用户无法绑定 1024 以下端口,而 haproxy 默认监听 80443,直接启动会报 Permission deniedAddress already in use。别急着加 sudo 启动服务——这会埋下权限和安全风险。

  • setcap 'cap_net_bind_service=+ep' /usr/sbin/haproxy 授予能力,比全权 root 更细粒度;验证:运行 getcap /usr/sbin/haproxy 应返回该行
  • 检查端口占用:ss -tlnp | grep ':80',确认没被 nginx、apache 或残留进程占着
  • 若测试环境想绕开权限问题,临时改配置里 bind 行为:bind *:8080,但上线前必须切回标准端口并配好能力

Keepalived + HAProxy 主备切换不生效

常见现象是 VIP(如 192.168.1.100)始终只在一台机器上响应,另一台 keepalived 日志里反复出现 Master received advert from XXX with higher priority,本质是状态同步逻辑没对齐。

  • vrrp_script 必须检测 haproxy 进程真实存活:killall -0 haproxyps aux | grep haproxy 可靠,后者可能匹配到 grep 自身
  • 主备的 priority 值不能只差 1——网络抖动可能触发误判,建议至少差 50;同时设 advert_int 1(秒级探测),别用默认 2 秒
  • 确保两节点时间同步:chronydsystemd-timesyncd 必须启用,否则 VRRP 报文时间戳校验失败,keepalived 会静默丢包

HAProxy 配置里 http-checkoption httpchk 选哪个

两者都能做 HTTP 健康检查,但底层行为差异大,混用容易导致后端节点被误踢。

ShopNC网上商店单用户版
ShopNC网上商店单用户版

ShopNC单用户商城系统是面向独立卖家而开发的B2C商城系统。系统运行稳定高效,功能强大,突出个性化配置要求,可以根据不同的营销策略,从模板、栏目、功能上进行调整,满足各类客户的需要。系统部署快捷方便,减轻了使用者的技术负担,简单的维护操作免去了用户的后顾之忧。本系统前台开放源码,后台加密的。产品特点快速安装,维护简单 分布提示安装,即使不熟悉技术的用户也可以自主安装系统。后台融合数据库等功能管

下载
  • option httpchk 是传统模式,仅发 HEAD 请求,不带 Host 头,适合简单静态服务;若后端依赖 Host 头路由(比如多租户 API 网关),它大概率失败
  • http-check send hdr Host example.com + http-check expect status 200 是现代写法,可构造完整请求,支持自定义 header、method、path,且能解析响应体内容(如 http-check expect string "OK"
  • 注意:启用了 http-check 就别再写 option httpchk,HAProxy 会忽略后者;检查是否生效:看 stats 页面里 backend 的 check 列是否显示 “HTTP” 而非 “L4TCP”

SSL 卸载后客户端真实 IP 丢失

HAProxy 默认把源 IP 替换为自身地址传给后端,X-Forwarded-For 头虽存在,但 Nginx/Apache 不默认信任它,日志和限流仍显示 HAProxy 的内网 IP。

  • HAProxy 配置中必须加 option forwardfor except 127.0.0.1(或你内网段),否则本地健康检查也会塞入伪造头
  • 后端 Web 服务器要显式配置可信代理段:Nginx 用 set_real_ip_from 10.0.0.0/8; + real_ip_header X-Forwarded-For;;Apache 用 RemoteIPTrustedProxy
  • 别漏掉 option http-server-close——它让 HAProxy 保持与客户端的连接,同时释放与后端的连接,避免长连接场景下 X-Forwarded-For 被覆盖

真正麻烦的从来不是单点配置,而是当 Keepalived 抢 VIP、HAProxy 重载配置、后端滚动发布三件事撞在一起时,那个 200ms 的窗口期——它不会报错,但会悄悄丢请求。盯住 show stat 输出里的 qcur(当前排队请求数)和 bin/bout(字节收发量)突变,比看日志更早发现问题。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

240

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

519

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

587

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

243

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

585

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3606

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

53

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

67

2026.01.13

Golang 实际项目案例:从需求到上线
Golang 实际项目案例:从需求到上线

《Golang 实际项目案例:从需求到上线》以真实业务场景为主线,完整覆盖需求分析、架构设计、模块拆分、编码实现、性能优化与部署上线全过程,强调工程规范与实践决策,帮助开发者打通从技术实现到系统交付的关键路径,提升独立完成 Go 项目的综合能力。

1

2026.02.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.7万人学习

Git 教程
Git 教程

共21课时 | 3.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号