news 2026/4/29 19:31:16

HAProxy 负载均衡器的配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HAProxy 负载均衡器的配置

HAProxy 负载均衡器配置步骤

HAProxy是一款高性能、开源的负载均衡软件,在Linux环境下部署非常普遍。

1.安装HAProxy

在你的负载均衡器服务器上,根据操作系统安装HAProxy。例如,在CentOS或RHEL上:

sudoyuminstallhaproxy

在Ubuntu或Debian上:

sudoapt-getupdatesudoapt-getinstallhaproxy

2.配置HAProxy

HAProxy的主要配置文件是​/etc/haproxy/haproxy.cfg​。你可以备份原文件后,用以下配置替代(请将​192.168.1.73​替换为你的实际节点IP,​31441​替换为你的实际NodePort):
haproxy.cfg

global daemon maxconn 4096 log 127.0.0.1 local0 info defaults mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms log global option httplog option dontlognull retries 3 # 监听80端口的HTTP流量 frontend http_front bind *:80 # 此处使用你的域名,例如 dong.nginx.com acl host_dong hdr(host) -i dong.nginx.com use_backend http_back if host_dong # 后端服务器配置,指向你的Kubernetes节点和NodePort backend http_back balance roundrobin # 使用轮询负载均衡算法 [citation:3] # 替换以下IP和端口为你的节点IP和Ingress Controller的NodePort server k8s-node1 192.168.1.73:31441 check # 如果你的集群有多个节点,可以继续添加server行,例如: # server k8s-node2 192.168.1.74:31441 check # 可选:监听443端口的HTTPS流量(如果你配置了TLS/SSL证书) #frontend https_front # bind *:443 # acl host_dong hdr(host) -i dong.nginx.com # use_backend http_back if host_dong # # 如果需要SSL终止,在此处指定证书路径 # # bind *:443 ssl crt /path/to/your/certificate.pem

重要配置说明:

  • ​​​frontend http_front​:
    定义了HAProxy如何接收外部HTTP请求。这里绑定了80端口,并通过​acl​规则匹配主机头(Host)为​dong.nginx.com​的请求,将其导向指定的后端。​
  • ​​​backend http_back​: 定义了流量转发的目标,即你的Kubernetes节点和Ingress
    Controller的NodePort。​balance roundrobin​指定使用轮询负载均衡算法。
  • server k8s-node1 …​: 定义后端服务器。​check​选项表示启用健康检查。
  • 如果你的集群有多个节点,强烈建议在​backend​部分列出所有节点,这样HAProxy可以在它们之间分发流量并提供高可用。

3.启动并启用HAProxy

配置完成后,启动HAProxy服务并设置为开机自启。
在CentOS/RHEL 7及以上版本:

sudo systemctl enable haproxy sudo systemctl start haproxy sudo systemctl status haproxy # 检查运行状态

在Ubuntu/Debian:

sudosystemctlenablehaproxysudosystemctl start haproxysudosystemctl status haproxy# 检查运行状态

4.配置防火墙

确保负载均衡器服务器的防火墙放行了80端口(如果配置了HTTPS,还需放行443端口)。
例如,在使用​firewalld​的系统中:

sudofirewall-cmd --permanent --add-service=http# 如需HTTPS:sudo firewall-cmd --permanent --add-service=httpssudofirewall-cmd --reload

5.修改DNS或本地Hosts解析

现在,你需要让域名​dong.nginx.com​解析到负载均衡器的IP地址,而不是之前直接解析到Kubernetes节点IP。

  • 生产环境:在你的DNS服务商处修改​dong.nginx.com​的A记录,将其指向负载均衡器的公网IP。
  • 测试环境:可以修改客户端电脑(用来访问的电脑)的hosts文件,添加记录(请将​你的负载均衡器IP​替换为实际IP):
    你的负载均衡器IP dong.nginx.com

6.验证配置

完成以上步骤后,你就可以在浏览器中直接访问 ​http://dong.nginx.com​ (无需输入端口号)来访问你的Nginx服务了。

其他负载均衡器与可选配置

  • 使用Nginx作为负载均衡器:Nginx同样是一款强大的Web服务器和反向代理服务器。其配置与HAProxy思路类似,需要在​nginx.conf​中配置​upstream​块定义后端,并在​server​块中使用​proxy_pass​进行转发。
  • 负载均衡算法:除了配置中使用的​round-robin​(轮询),还可以根据场景选择其他算法。例如,​leastconn​(最小连接数)会将新连接请求发送到当前连接数最少的服务器,这在后端服务器性能不均时很有用。
  • 健康检查:配置中的​check​参数开启了HAProxy对后端服务器的健康检查。你还可以通过​intervale​、​rise​、​fall​等参数更精细地控制检查频率和判断条件。
  • 会话保持:如果你的应用需要用户在一次会话中始终访问同一台后端服务器,可以配置会话保持 (Session
    Affinity)。例如,在HAProxy中可以通过​cookie​指令实现。

故障排查

如果无法访问,可以按以下思路排查:
1.检查HAProxy状态:使用 ​systemctl status haproxy​ 查看服务是否正常运行。
​2.检查HAProxy日志:通常在 ​/var/log/haproxy.log​,查看是否有错误信息。
​3.验证网络连通性:从负载均衡器服务器使用 ​telnet​ 或 ​nc​ 命令测试是否能连接到Kubernetes节点的NodePort(例如 ​telnet 192.168.1.73 31441​)。
​4.检查防火墙规则:确认负载均衡器和服务节点的相关端口都已开放。
​5.验证DNS或Hosts解析:在客户端使用 ​ping dong.nginx.com​ 确认域名正确解析到了负载均衡器的IP。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 15:47:11

如何用Vue-OrgChart快速构建企业级组织结构图:2025终极解决方案

在现代企业管理系统中,组织结构图的可视化展示已成为不可或缺的功能模块。无论是HR系统、项目管理平台还是企业OA系统,清晰的组织架构展示都能极大提升用户体验和系统专业性。然而,传统SVG图表库复杂难用、学习成本高的问题一直困扰着开发者。…

作者头像 李华
网站建设 2026/4/29 13:46:47

Docker镜像构建失败?一文掌握Vercel AI SDK版本兼容秘诀

第一章:Docker镜像构建失败?一文掌握Vercel AI SDK版本兼容秘诀在使用 Vercel AI SDK 构建基于 Docker 的应用时,开发者常遇到镜像构建失败的问题,其根源多与 SDK 版本和运行时环境的依赖冲突有关。确保版本兼容性是解决问题的关键…

作者头像 李华
网站建设 2026/4/28 11:50:54

量子计算镜像的运行参数调优实战(专家级参数设置指南)

第一章:量子计算镜像的运行参数概述在部署和运行量子计算模拟环境时,镜像的配置参数直接影响系统的稳定性与计算效率。合理的参数设置能够确保量子态叠加、纠缠模拟等核心功能正常执行,并最大限度利用底层硬件资源。核心运行参数说明 qubit_c…

作者头像 李华
网站建设 2026/4/25 3:01:24

【边缘 Agent 部署终极指南】:手把手教你编写高效 Docker 启动脚本

第一章:边缘 Agent 与 Docker 部署概述在现代分布式系统架构中,边缘 Agent 扮演着连接中心控制平台与终端设备的关键角色。它通常运行于资源受限的边缘节点,负责数据采集、本地决策、状态上报以及指令执行。为提升部署灵活性与环境隔离性&…

作者头像 李华
网站建设 2026/4/28 15:12:15

如何快速上手TabPFN:表格数据预测的终极AI解决方案

如何快速上手TabPFN:表格数据预测的终极AI解决方案 【免费下载链接】TabPFN Official implementation of the TabPFN paper (https://arxiv.org/abs/2207.01848) and the tabpfn package. 项目地址: https://gitcode.com/gh_mirrors/ta/TabPFN 在当今数据驱动…

作者头像 李华
网站建设 2026/4/22 2:49:15

为什么90%的团队都用错了智能Agent?Docker监控避坑指南

第一章:为什么90%的团队都用错了智能Agent?许多团队在引入智能Agent时,往往将其视为“自动化脚本”的升级版,忽略了其核心价值在于自主决策与环境感知能力。这种误解导致大量项目停留在任务编排层面,未能发挥Agent的学…

作者头像 李华