Ubuntu Pound 反向代理负载平衡基于主动服务器负载?

Ubuntu Pound 反向代理负载平衡基于主动服务器负载?

我在负载均衡器上安装了 Pound。它似乎工作正常,只是它会随机分配后端服务器来转发请求。我让一台后端机器承受了如此多的负载,以至于它开始使用交换,我甚至无法通过 ssh 进入它来测试这种情况。我希望负载均衡器能够意识到机器超载,并将其发送到另一台后端机器。但是它没有。我读过手册页,似乎指令“DynScale 1”可以监控这一点,但它仍然重定向到超载的服务器。我还在后端输入了“HAport 22”,因为我无法通过 ssh 进入,所以负载均衡器也不能,它会认为后端服务器已经死机,直到它摆脱负载并做出响应,但这也无济于事。

如果有人能帮忙,我将不胜感激。我当前的配置如下。

######################################################################
## 全局选项:

用户“www-data”
组“www-data”
#RootJail “/chroot/pound”

## 日志记录:(默认进入系统日志)
## 0 无日志
## 1 正常
## 2 扩展
## 3 Apache 风格(通用日志格式)
日志级别 3

## 每X秒检查一次后端:
活着 5
DynScale 1

客户端 1200
超时 1500

# poundctl 控制套接字
控制“/var/run/pound/poundctl.socket”


######################################################################
## 监听、重定向并...至:

## 将端口 80 上的所有请求重定向到 SSL
监听HTTP
     地址 192.168.1.XX
     端口 80
     服务
          重定向“https://xxx.com/”
     结尾
结尾

监听HTTPS
     地址 192.168.1.XX
     端口 443
     证书“/files/www.xxx.com.pem”
     服务
           后端
                  地址 192.168.1.1
                  端口 80
        HAport 22
           结尾
           后端
                  地址 192.168.1.2
                  端口 80
        HAport 22
           结尾
     结尾
结尾

答案1

根据您的timeout设置,Pound 会等待 25 分钟才能收到后端的响应。在测试期间将其设置为较低的时间,例如默认的 15 秒。

答案2

我听到过很多关于其功效的不同意见DynScale。我们选择不使用它。我们所做的是Priority为每个部分设置一个 val BackEnd。从手册页中:

优先级值

此后端的优先级(介于 1 和 9 之间,默认值为 5)。优先级较高的后端将比优先级较低的后端使用得更频繁,因此您应该为功能更强大的服务器定义更高的优先级。

您的新ListenHTTPS部分应如下所示:

ListenHTTPS
     Address 192.168.1.XX
     Port    443
     Cert    "/files/www.xxx.com.pem"
     Service
           BackEnd
                  Address 192.168.1.1
                  Port 80
                  Priority 7
           End
           BackEnd
                  Address 192.168.1.2
                  Port 80
                  Priority 3
           End
     End
End

Priority尝试每个不同的值,BackEnd直到您对其分配负载的方式满意为止。

DynScale您应该在使用时将其关闭Priority,否则 Pound 将尝试根据实际使用情况为您调整值。

另外,您可能应该将其设置Alive为更高的时间,例如 30 秒。如果您的服务器承受的负载超出其处理能力,您不会希望 Pound 每 5 秒启动一次以查看它是否再次恢复。

最后,我同意@Andrew。你的Timeout价值应该低得多。选择适中的值,比如 300(5 分钟)。

答案3

如果您“直接”将负载流量发送到一台后端机器(即不经过 Pound),它将无法检测到负载。

Pound 将简单地尝试后端的端口 80(它实际上将响应初始 TCP 握手、SYN/ACK 等,但仅此而已)并等待直到您指定的超时。

尝试通过 Pound 发送负载流量,并试验后端优先级和 DynScale。Pound 使用与后端的开放、持续连接数来计算负载平衡。

另外,检查“poundctl”命令来查看服务/后端的一些统计数据。

相关内容