小编Dav*_*omb的帖子

Apache httpd 工作者重试

我有一个运行 mod_proxy 和 mod_proxy_balancer 的 Apache httpd Web 服务器。整个 /somedir 被发送到 2 台工作机器,这些机器使用循环调度程序为请求提供服务。每台工作机器都在运行 IIS,但我认为这并不重要。

我可以通过重复请求包含机器 IP 地址的单个页面来演示负载平衡器的工作,并且可以看到它以可预测的循环方式从一个页面切换到另一个页面。

如果我关闭其中一台 IIS 服务器并开始请求相同的页面,则每个页面仅包含已启动机器的 IP 地址。但是,如果我启动 IIS 并且不运行我的 IIS 应用程序,那么 /somedir 将返回 500(应该如此)。

我已将 500 添加到故障状态(Apache 2.4)中,因此当它遇到错误时,Apache 会将工作机器置于错误状态。尽管如此,Apache 仍然将代理错误返回给客户端。如何让 Apache 捕获代理故障并以与连接故障相同的方式使用不同的工作器重试。

更新

在 StackOverflow 中提出了几乎相同的问题,因此将它们结合在一起。

/sf/ask/775859521/

mod-proxy 500-error apache-2.2 apache-2.4

7
推荐指数
1
解决办法
9282
查看次数

为什么负载平衡器算法不允许根据当前 CPU 或内存使用情况选择工作机器

我目前正在研究 Apache mod_load_balancer 和 mod_proxy 的负载平衡。稍后我还将查看其他负载平衡器,但有一件事已经很清楚了。为什么几乎没有任何负载均衡器(如果有的话)根据工作机器的实际负载做出分配决策。

例如,Apache 根据请求数量、数据吞吐量和请求队列长度来分配请求。为什么他们没有某种机制将请求分发到 CPU 或内存使用率最低的机器。

我正在构建一个系统,其中每个请求都需要大量CPU,以至于 2 或 3 台工作机器只能为 10 或 20 个并发客户端提供服务,然后我才能将它们的所有 CPU 都用完。一些对 xml 的请求非常轻量级,而另一些对“东西”的请求非常重。

它真的对事物的计划有什么影响吗?有没有人发现即使是基于 CPU 的分发算法最终也会变成循环模式。它是否会增加额外的开销,使其不值得。

是否有任何其他负载平衡器提供此功能,它们是否提供它并且没有人出于任何原因使用它。

这似乎是一件非常好的事情,但似乎没有人实施它。我很困惑,需要一些关于这个主题的建议。

load-balancing apache-2.2

3
推荐指数
1
解决办法
1074
查看次数