pfSense book之Web服务器负载平衡配置示例

本文涉及的产品
云防火墙,500元 1000GB
简介:

  在pfsense的网关和服务器中有两种类型的负载平衡功能。网关负载平衡可以通过多个WAN连接分发Internet绑定的流量。服务器负载平衡管理传入流量,因此它利用多个内部服务器进行负载分配和冗余,服务器负载平衡允许流量在多个内部服务器之间分配,它最常用于Web服务器和SMTP服务器。下面我们就以实例来介绍服务器负载平衡的设置。

  下面介绍如何通过pfsense2.32配置Web服务器的负载平衡。

网络环境

../_images/diagrams-serverlb-example.png

服务器负载平衡示例网络环境

上图为示例网络环境。它由单个防火墙组成,使用其WAN IP地址池,DMZ段上有两个Web服务器。

配置地址池

  • 导航到 Services > Load Balancer

  • 单击Pools 标签

  • 单击 fa-plus 添加一个新的地址池

  • 如图所示,使用以下设置:

    Name: WebServers
    Mode: Load Balance
    Description: Web server Pool
    Port: 80
    Retry: 5
    Pool Members: 添加两个Web服务器 (10.6.0.11 和10.6.0.12
  • 单击Save

../_images/serverlb-pool.png

地址池配置

配置虚拟服务器

../_images/serverlb-virtualserver.png

虚拟服务器配置

  • 单击Virtual Servers标签

  • 单击 fa-plus 添加一个新的虚拟服务器

  • 如图所示,使用以下设置:

    Name: WebVirtualServer
    Description: Web Server
    IP Address: The firewall’s WAN IP address, 198.51.100.6
    Port: 80
    Virtual Server Pool:

    WebServers
    Fall Back Pool: None
  • 单击 Submit(提交)

  • 单击 Apply Changes(应用更改)



注意

在这个示例中,如果两个池服务器都关闭,则虚拟服务器无法访问。 如果没有配置虚拟服务器,防火墙将会起作用。 如果防火墙上的某些应用绑定到80端口,那么客户端就会直达绑定了这个端口的应用。 这可能包括通过端口80访问内置Web GUI,因此应该在System > Advanced Admin Access 选项卡上禁用或采用其他端口。


配置防火墙规则

防火墙规则必须配置为允许访问池中的服务器。 规则必须允许流量使用内部IP地址和端口,并且对虚拟服务器配置中使用的外部IP地址和端口不需要任何规则限制。

创建一个包含池中所有服务器的别名,因此可以使用单个防火墙规则进行访问。

  • 导航到Firewall > Aliases

  • 单击 fa-plus 添加 一个别名

  • 如图所示,使用以下设置:

    Name: www_servers
    Type: Hosts
    Hosts: 两个Web服务器IP地址: 10.6.0.11 和 10.6.0.12
  • 单击 Save

  • 单击 Apply Changes(应用更改)


图中的“Name”显示了用于此示例配置的别名,其中包含两个Web服务器。

../_images/serverlb-alias.png

Web 服务器别名设置

下一步,用这个别名创建一个防火墙规则: 导航到Firewall > Rules ,切换到外部连接访问的接口(例如WAN), 单击 fa-level-up 在顶部添加一条新规则,设置如下:

Interface: WAN
Protocol: TCP
Source: any
Destination Type:

Single Host or Alias
Destination Address:

www_servers
Destination Port Range:

HTTP
Description: Allow to Web Server
  • 单击 Save

  • 单击 Apply Changes(应用更改)

下图为Web服务器设置的防火墙规则,未显示的选项保留默认值。

../_images/serverlb-fwruleedit.png

为Web服务器添加防火墙规则

列表中显示的规则。

../_images/serverlb-fwrule.png

Web 服务器防火墙规则

查看负载平衡状态

现在已经配置了负载平衡器,要查看其状态,请浏览到Status > Load Balancer,然后单击“Virtual Servers”选项卡。此页面显示整个服务器的状态,通常列为“Active(联机”或“Down(脱机”。

Pools选项卡显示池的每个成员的单独状态(如图池状态)。如果服务器处于联机状态,服务器的行为绿色,如果服务器处于脱机状态,则为红色。

此外,池中的每个服务器都有一个复选框。 已检查的服务器在池中处于活动状态,池中已禁用未选中的服务器,与在池编辑页面上启用和禁用列表之间移动的服务器相同。 要禁用服务器:取消选中它,然后单击保存。 

../_images/serverlb-status-online.png

池状态

如果在其中一个服务器上停止了Web服务器服务,或者如果使用ICMP监视器将服务器完全从网络中删除,则状态将更新为“脱机”,并将服务器从池中删除。

验证负载平衡

为了验证负载平衡, curl 是确保Web浏览器缓存和持久连接不影响测试结果的最佳选择。curl 可以从 curl 官方网站下载,有各种操作系统的版本。 要使用它,只需运行以下命令:

curl http://mysite

在该命令中,将198.51.100.6替换为站点的IP地址或主机名。 这必须从网络外部进行测试(例如,从WAN上的远程网络或客户端)。 例如,在外网用curl进行测试:

# curl http://198.51.100.6
 This is server www2 - 10.6.0.12
# curl http://198.51.100.6
 This is server www1 - 10.6.0.11

测试负载平衡时,设置每个服务器返回指定其主机名、IP地址或两者,因此明确哪个服务器响应该请求。 如果未启用粘性连接,则不同的服务器将响应每个请求。

故障排除


不能连接到负载平衡

不能连接到负载平衡器通常是使用测试方法不当造成的,这通常是HTTP特有的。 Web浏览器通常会保持与Web服务器建立的连接,并且点击刷新会重新使用现有的连接。 单个连接将永远不会更改为另一个平衡服务器。 另一个常见的问题是网络浏览器缓存,浏览器只从缓存读取数据,未真正再次刷新页面。 最好使用诸如curl等命令行工具来测试,因为它确保测试不受Web浏览器测试中固有问题的影响。curl没有缓存,并在每次运行时都会重新建立与服务器的新连接。 

如果启用了粘性连接,请确保从多个源IP地址执行测试。来自单个源IP地址的测试将转到单个服务器,除非连接尝试之间经过了较长的时间。

关闭服务器未标记为脱机

如果服务器关闭但没有标记为脱机,那是因为负载平衡守护程序执行的监视信号仍然处于启动状态。 如果使用TCP监视器,TCP端口必须仍然接受连接。 该端口上的服务可以以多种方式断开,仍然可以回复TCP连接。 对于ICMP监视器,这个问题更加严重,因为服务器可以挂起或故障,没有任何监听服务,仍然可以回答ping。

在线服务器未标记为在线

如果服务器在线,但没有标记为在线,那是因为从负载平衡守护程序监视器的角度来看,它不是联机的。 服务器必须在所使用的TCP端口上回答或响应来自最靠近服务器的防火墙接口IP地址的ping。

例如,如果服务器在LAN上,则服务器必须应答从防火墙的LAN IP地址发起的请求。 要验证ICMP监视器,请导航到到Diagnostics > Ping,并使用服务器所在的接口Ping服务器IP地址。

对于TCP监视器,请使用“Diagnostics > Test Port”,并选择防火墙的LAN接口作为源,将Web服务器的IP地址和端口作为目标。

另一种测试方法是使用防火墙的shell提示符,使用console或ssh菜单选项8nc命令

# nc -vz 10.6.0.12 80nc: 
connect to 10.6.0.12 port 80 (tcp) failed: Operation timed out

上面是一个失败的例子。

下面是一个成功连接的例子:

# nc -vz 10.6.0.12 80
Connection to 10.6.0.12 80 port [tcp/http] succeeded!

如果连接失败,请在Web服务器上进一步进行故障排除。

与池服务器在同一子网中的客户端无法访问虚拟服务器

与池服务器在同一子网中的客户端系统将无法使用此负载平衡方法正确连接。 relayd将连接转发到具有客户端源地址的Web服务器。然后,服务器将尝试直接响应客户端。如果服务器具有到客户端的直接路径,例如通过同一子网中的本地连接的NIC,它将不会正常通过防火墙回流,客户端将从服务器的本地IP地址收到回复,而不会在relayd中收到该IP地址。然后,由于从客户端的角度看,服务器IP地址不正确,连接被丢弃为无效。


这样做的一个方法是使用手动出站NAT和制定手动出站NAT规则,以便从LAN子网到达Web服务器的内部接口(LAN)的流量转换为LAN的接口地址。这样,流量似乎源于防火墙,服务器将响应到防火墙,然后防火墙将该流量中继到客户端使用的预期地址。原始的客户端源IP地址在该过程中丢失,最佳的解决方案是将服务器移动到不同的网段。










本文转自 鐵血男兒 51CTO博客,原文链接:http://blog.51cto.com/fxn2025/1967084,如需转载请自行联系原作者
目录
相关文章
|
10天前
|
小程序 前端开发 中间件
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
本文介绍了如何在ThinkPHP框架中配置跨域请求,使用了TP内置的跨域类`\think\middleware\AllowCrossDomain::class`。文章还讨论了小程序和web网页在跨域请求格式上的区别,并提供了解决方案,包括修改跨域中间件源码以支持`Origin`和`token`。此外,还介绍了微信小程序跨域请求的示例和web网页前端发送Axios跨域请求的请求拦截器配置。
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
|
1月前
HAProxy的高级配置选项-配置haproxy支持https协议及服务器动态上下线
文章介绍了如何配置HAProxy以支持HTTPS协议和实现服务器的动态上下线。
84 8
HAProxy的高级配置选项-配置haproxy支持https协议及服务器动态上下线
|
1月前
|
监控 Apache
HAProxy的高级配置选项-Web服务器状态监测
这篇文章介绍了HAProxy的高级配置选项,特别是如何进行Web服务器状态监测,包括基于四层传输端口监测、基于指定URI监测和基于指定URI的request请求头部内容监测三种方式,并通过实战案例展示了配置过程和效果。
54 8
HAProxy的高级配置选项-Web服务器状态监测
|
18天前
|
Ubuntu Linux
Linux服务器的自动启动可以在哪里进行配置?
Linux服务器的自动启动可以在哪里进行配置?
75 3
|
29天前
|
监控 应用服务中间件
Nagios 服务器 Nrpe 配置
Nagios服务器需安装NRPE并定义监控命令于`command.cfg`中。示例配置如下:`check_nrpe -H $HOSTADDRESS$ -c $ARG1$`。客户端配置文件如`192.168.149.128.cfg`可引用NRPE配置的命令,如`check_nrpe!check_load`以监控负载。监控HTTP关键词使用`check_http`命令加参数,如`-I`指定IP,`-u`指定URL,`-s`指定关键词,可在`command.cfg`中定义如`check_http_word`命令,并在主机配置文件中引用。
44 13
|
1月前
|
编解码 小程序
无影云电脑产品使用黑神话悟空之:游戏服务器更新/配置问题
该文档主要介绍了使用无影云电脑玩《黑神话:悟空》时可能遇到的问题及解决方法,包括游戏服务器更新、配置问题、画质建议及如何开启帧数显示等内容,并提供了详细的步骤指导与参考链接。
|
1月前
|
监控 安全 网络协议
快速配置Linux云服务器
快速配置Linux云服务器
|
弹性计算 Shell Windows
阿里云学生专享ecs服务器体验及个人配置
阿里云学生优惠专享的云服务器个人使用体验
阿里云学生专享ecs服务器体验及个人配置
|
27天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
25天前
|
编解码 前端开发 安全
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
在我们选购阿里云服务器的过程中,不管是新用户还是老用户通常都是通过阿里云的活动去买了,一是价格更加实惠,二是活动中的云服务器配置比较丰富,足可以满足大部分用户的需求,但是面对琳琅满目的云服务器实例、带宽和云盘选项,如何选择更适合自己,成为许多用户比较关注的问题。本文将介绍如何在阿里云的活动中选择合适的云服务器实例、带宽和云盘,以供参考和选择。
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
下一篇
无影云桌面