HAProxy是一款开源软件,可为TCP/HTTP服务提供高可用性和负载平衡。它以速度和高效的性能而闻名。本文将介绍在pfSense上配置HAProxy实现负载平衡的过程。
HAProxy 有两个部分,第一个是前端,第二个是后端。
前端侦听对用户开放的端口,主要面向外部的。后端是本地服务器。创建一个前端并指向后端,后端可以连接多个服务器。
下面是本文使用的拓扑。
有三个网络服务器连接到pfSense的LAN 端,它在80端口上运行一个apache 服务。配置HAProxy以循环的方式在所有三个网络服务器上执行负载平衡。
在局域网内,可以正常访问 Web 服务。下面我们将通过设置HAProxy,让外部用户通过防火墙来平衡访问内部的三台服务器。
安装 HAProxy
转到系统 –> 插件管理,点击可用插件选项卡,搜索HAProxy,单击右侧的安装按钮进行安装。
安装完成后,如下图所示:
配置http服务负载均衡
现在为在 http 端口号上运行的三个Web服务器配置HAProxy 负载平衡。导航到服务>HAProxy,打开HAProxy。
配置后端服务器
首先配置后端服务器,后端服务器是局域网内的的虚拟服务器,包含Web 服务器 1、2 和 3。
单击后端选项卡。
单击添加配置后端服务器。
填写以下必填字段。
名称:提供一个用户友好的名称;如:http_web_server_pool1
在服务器列表下,可以单击添加服务器字段来逐一添加服务器。
需要填写的字段如下。
- 模式:Active
- 名称:web1
- 地址:10.1.1.11
- 端口:80
之后,单击左下角的添加按钮添加下一个服务器。
添加第二个服务器,如下所示。
- 模式:Active
- 名称:web2
- 地址:10.1.1.12
- 端口:80
按照上述步骤添加了第三个服务器,如下所示。
- 模式:Active
- 名称:web3
- IP:10.1.1.13
- 端口:80
配置负载平衡选项
现在配置负载平衡选项,它位于服务器列表的正下方。
有多个选项可用,我们使用循环方法,这是一种标准的负载平衡方法,将平均加载后端服务器。
还可以进一步配置 ACL – 访问控制列表和操作以及超时/重试设置,本文只介绍基本配置。
服务器健康检查
选中使用健康检查选项来监控后端服务器的健康状态。选择HTTP作为健康检查方法,因为它将使用 HTTP 协议检查 Web 服务器的健康状态。
可以启用日志检查,当任何 Web 服务器出现故障时,会自动生成日志。
选择HTTP 检查方法为 GET。
其他选项保留为默认值,然后单击“立即保存”并应用更改。
在没有将后端服务器附加到前段之前,后端服务器会显示为灰色,如下图所示:
配置前端
单击“前端”选项卡并单击“添加”按钮来配置前端。
编辑 HAProxy 前端。
- 名称:http_access
- 描述:提供对 web1、2 和 3 的 http 访问
- 状态:Active
- 外部地址:保留为默认设置。
- 监听地址:WAN地址(ipv4)
- 端口:80
设置将使前端 IP 地址开始侦听端口 80
将后端附加到前端
向下滚动并在默认后端、访问控制列表和操作下。
从下拉列表中选择新创建的后端服务器,然后单击保存来应用更改。
HAProxy设置
配置前端后,现在可以单击 HAProxy 配置上的设置选项卡。这是启用 HAProxy 进程的地方;选中启用 HAProxy 的选项。
在每个进程的最大连接数上输入1000。
将其他所有内容保留为默认值并向下滚动到下一部分统计选项卡,内部统计端口。
如果需要,可以添加任何可用的端口,这里选择 2000,这取决于你希望使用哪个端口号。
然后单击“保存”。
配置防火墙规则
配置防火墙规则,以允许从外部访问防火墙的80端口。单击防火墙–>规则策略–>WAN。单击添加新策略。
规则如下:
- 动作:PASS
- 接口:WAN
- 地址系列:IPv4
- 协议:TCP
- 源:ANY
- 目标:ANY
- 目标端口:HTTP
测试
现在准备在pfSense上测试负载均衡服务,在这之前检查一下统计表,应该看到所有的网络服务器都显示为绿色。
在同一个HAProxy 配置窗口中,可以在同屏或全屏上查看统计信息。右键单击Stats FS,然后单击新选项卡中的打开链接。
这将在新选项卡中打开统计表,如下所示。
访问网页
在外部访问防火墙外网IP地址,第一个请求将连接到web1,第二个将连接到web2,依此类推。每当访问防火墙的80端口时,它都会转到内部的的不同虚拟服务器上。
检查统计数据
也可以从 HAProxy 统计信息屏幕进行验证。
当刷新Web服务器选项卡两次时,在统计信息中看到请求转到 web1和 web2。
原文地址。
哈哈,我用的也是10.1.1.x网段