Apache mod_proxy_balancer 动态停止将请求转发给超时成员

发布于 2024-12-07 06:51:07 字数 754 浏览 1 评论 0原文

Apache mod_proxy_balancer

我正在尝试将 apache mod_proxy_balancer 配置为充当 HTTP VIP 并代表其后面的 2 个 IIS 服务器。

VIP 的配置方式如下:

<Proxy balancer://appcluster>
        BalancerMember http://IP-IIS1:80 route=iis1 max=160 timeout=60
        BalancerMember http://IP-IIS2:80 route=iis2 max=160 timeout=60
        ProxySet stickysession=SERVERID
        Order Allow,Deny
        Allow from all
        Deny from XXX.XXX.XXX.XXX
        Deny from XXX.XXX.XXX.XXX
</Proxy>

有时我会安排在其中一台 IIS 服务器上执行的任务。它可以是其中任何一个。由于我无法将其绑定到其中一台服务器,因此它可以在任何 IIS 上启动,问题就来了:

当执行任务时,它会导致其中一台服务器处理传入请求的速度非常慢,因此需要很长时间服务 Apache 转发给它的请求的时间超过 Apache 中配置的 60 秒超时。

有没有办法让 mod_proxy_balancer 识别这种情况并停止将请求转发到慢速服务器,例如动态地将其从平衡池中取出?

Apache mod_proxy_balancer

I'm trying to gonfigure apache mod_proxy_balancer to act as HTTP VIP and represent 2 IIS servers behind it.

This how the VIP configured:

<Proxy balancer://appcluster>
        BalancerMember http://IP-IIS1:80 route=iis1 max=160 timeout=60
        BalancerMember http://IP-IIS2:80 route=iis2 max=160 timeout=60
        ProxySet stickysession=SERVERID
        Order Allow,Deny
        Allow from all
        Deny from XXX.XXX.XXX.XXX
        Deny from XXX.XXX.XXX.XXX
</Proxy>

Sometimes I have scheduled task that executed on one of the IIS servers. It could be any one of them. Since I can't bind it to one of the servers it can start on any IIS, and here comes the problem:

When the task been executed it causes to one of the servers to be very slow on incoming requests serving so it takes it very long time to serve the requests that forwarded to it by the Apache, more that the timeout configured in Apache 60 sec.

Is there any way to make mod_proxy_balancer to recognize such condition and stop forwarding the requests to the slow server, e.g dynamicaly take it out from the balancing pool?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ゞ记忆︶ㄣ 2024-12-14 06:51:07

该模块需要mod_status服务。平衡器经理
启用平衡器成员的动态更新。您可以使用平衡器
经理改变平衡因素或特定成员,或者说
在离线模式下。

因此,为了获得负载均衡器管理的能力,
mod_status 和 mod_proxy_balancer 必须存在于服务器中。

为 example.com 中的浏览器启用负载均衡器管理
将此代码添加到您的 httpd.conf 配置文件中

SetHandler 平衡器管理器

订单拒绝、允许 拒绝来自 .example.com 的所有允许

您现在可以使用 Web 浏览器访问负载均衡器管理器
访问页面 http://your.server.name/balancer-manager

-> http://ceviri.belgeler.gen.tr/apache/htdocs /2.2/mod/mod_proxy_balancer.html

This module requires the service of mod_status. Balancer manager
enables dynamic update of balancer members. You can use balancer
manager to change the balance factor or a particular member, or put it
in the off line mode.

Thus, in order to get the ability of load balancer management,
mod_status and mod_proxy_balancer have to be present in the server.

To enable load balancer management for browsers from the example.com
domain add this code to your httpd.conf configuration file

SetHandler balancer-manager

Order Deny,Allow Deny from all Allow from .example.com

You can now access load balancer manager by using a Web browser to
access the page http://your.server.name/balancer-manager

-> http://ceviri.belgeler.gen.tr/apache/htdocs/2.2/mod/mod_proxy_balancer.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文