pfSense配置使用HAProxy进行Web负载均衡

本文摘要在 pfSense 上配置 HAProxy 负载均衡HAProxy 是一款开源软件,可以为 TCP/HTTP 服务提供高可用性和负载均衡,以速度快、性能高效著称。本文将介绍如何在 pfSense 上配置 HAProxy 实现负载均衡。HAProxy 分为前端和后端两部分:前端监听对外开放端口,面向外部用户;后端是内部的服务器池。创建一个前端并将其指向后端,后端可以连接多台服务器。以下是本文使用的拓...

在 pfSense 上配置 HAProxy 负载均衡

HAProxy 是一款开源软件,可以为 TCP/HTTP 服务提供高可用性和负载均衡,以速度快、性能高效著称。本文将介绍如何在 pfSense 上配置 HAProxy 实现负载均衡。HAProxy 分为前端和后端两部分:前端监听对外开放端口,面向外部用户;后端是内部的服务器池。创建一个前端并将其指向后端,后端可以连接多台服务器。

以下是本文使用的拓扑架构:三台 Web 服务器连接到 pfSense 的 LAN 侧,均运行 Apache 服务并通过 80 端口提供网页。我们将配置 HAProxy 以轮询方式在三台服务器之间进行负载均衡。

网络拓扑:三台Web服务器通过pfSense实现负载均衡

在局域网内可以正常访问 Web 服务。下面我们将通过 HAProxy 让外部用户通过防火墙公网 IP 平衡访问内部的三台服务器。

安装 HAProxy

进入 系统 > 插件管理,点击 可用插件 选项卡,搜索 HAProxy,单击右侧的 安装 按钮进行安装。

在可用插件中搜索 HAProxy

安装完成后的提示如下:

HAProxy插件安装完成

配置 HTTP 服务负载均衡

现在为运行在 80 端口的三台 Web 服务器配置 HAProxy 负载均衡。导航到 服务 > HAProxy 打开配置界面。

从服务菜单进入 HAProxy

配置后端服务器

首先配置后端服务器,后端是包含 Web1、Web2 和 Web3 的虚拟服务器池。点击 后端 选项卡,再点击 添加 按钮。

后端配置页面,点击添加

填写以下必填字段:

  • 名称:填入一个便于识别的名称,例如 http_web_server_pool1

服务器列表 下方,点击 添加 逐一添加服务器。

添加服务器表单

为第一台服务器填写:

  • 模式:Active
  • 名称:web1
  • 地址:10.1.1.11
  • 端口:80

点击左下角的 添加 按钮添加下一台服务器。

添加第二台服务器 web2

为第二台服务器填写:

  • 模式:Active
  • 名称:web2
  • 地址:10.1.1.12
  • 端口:80

继续添加第三台服务器:

添加第三台服务器 web3

  • 模式:Active
  • 名称:web3
  • IP:10.1.1.13
  • 端口:80

配置负载均衡选项

在服务器列表正下方可以配置负载均衡算法。这里选用 轮询(Round Robin),这是一种标准的负载均衡方式,会将请求平均分配到后端服务器。

负载均衡选项选择 roundrobin

其他如 ACL、动作、超时/重试等设置可使用默认值,本文只介绍基本配置。

服务器健康检查

勾选 启用健康检查 来监控后端服务器的健康状态。健康检查方法选择 HTTP,因为它将使用 HTTP 协议检查 Web 服务器。启用日志,当任一 Web 服务器故障时会自动生成日志。HTTP 检查方式选择 GET

健康检查配置

其余选项保持默认,点击 保存 并应用更改。此时后端服务器尚未关联到前端,会显示为灰色。

后端未关联前端时显示灰色

配置前端

点击 前端 选项卡,再点击 添加 按钮。

前端配置页面点击添加

编辑 HAProxy 前端,填写以下内容:

  • 名称:http_access
  • 描述:提供对 web1、2 和 3 的 http 访问
  • 状态:Active
  • 外部地址:保持默认
  • 监听地址:WAN 地址 (IPv4)
  • 端口:80

以上设置将使前端对外网 IP 的 80 端口进行监听。

编辑前端监听地址和端口

将后端附加到前端

向下滚动,在 默认后端 / 访问控制列表和操作 区域,从下拉列表中选择刚才创建的后端服务器 http_web_server_pool1,点击 保存

选择后端服务器池附加到前端

HAProxy 设置

配置完前端后,进入 HAProxy 的 设置 选项卡。在此启用 HAProxy 进程:勾选 启用 HAProxy,并将 每个进程的最大连接数 设为 1000。

启用HAProxy并设置最大连接数

其他保持默认,向下滚动到 统计 部分,可以配置内部统计端口,例如填入 2000,可根据需要指定任意未占用端口。

配置内部统计端口

点击 保存 应用设置。

配置防火墙规则

为了让外部用户能够访问防火墙公网 IP 的 80 端口,需要添加一条 WAN 规则。进入 防火墙 > 规则策略 > WAN,点击 添加

规则参数如下:

  • 动作:PASS
  • 接口:WAN
  • 地址系列:IPv4
  • 协议:TCP
  • 源:ANY
  • 目标:ANY
  • 目标端口:HTTP (80)

添加WAN防火墙规则允许HTTP访问

测试 HAProxy 负载均衡

配置完成后,可以先查看统计信息,所有后端 Web 服务器应显示为绿色。在 HAProxy 配置界面,右键单击 Stats FS,选择在新的标签页中打开。

Stats FS链接

新打开的统计页面类似于下方所示,可以直观看到后端服务器的健康状态。

HAProxy统计页面,后端均显示绿色

访问网页

在外部浏览器访问防火墙公网 IP 地址,第一个请求会被轮询到 web1,第二个到 web2,第三个到 web3,以此类推。

浏览器访问外部IP时的网页响应

检查统计数据

同样可以通过 HAProxy 统计界面验证请求分发情况,可以看到请求被依次派发到 web1 和 web2。

统计数据显示请求分布

多次刷新后,统计信息中会记录每个后端服务器接收到的请求数。

统计中显示请求计数

至此,已经完成了在 pfSense 上使用 HAProxy 实现基本 Web 负载均衡的配置。

原文地址:How to Configure pfSense Load Balancer Using HAProxy?

觉得内容不错?我要

评论 暂无评论
暂无评论,快来抢沙发吧~