Apache 2.4 proxy_balancer和lbmethod_byrequest


13

我正在尝试使用静态模块构建Apache服务器。但是proxy_balancer模块遇到了一些问题。我收到一个错误:

[ssl:info] [pid 11863] AH01876: mod_ssl/2.4.10 compiled against Server: Apache/2.4.10, Library: OpenSSL/1.0.1i
[proxy:crit] [pid 11868] AH02432: Cannot find LB Method: byrequests
[proxy_balancer:emerg] [pid 11868] (22)Invalid argument: AH01183: Cannot share balancer
[:emerg] [pid 11868] AH00020: Configuration Failed, exiting

当我查看使用的已加载模块时,bin/apachectl -M那里没有mod_lbmethod模块。

我试图通过将这些行添加到配置脚本来加载模块--enable-lbmethod-byrequest--with-lbmethod=byrequest但是它不会显示在模块列表或包含的文件夹中。

有人以前曾遇到过这个问题并找到解决方案吗?

Answers:


16

如果您使用的是Apache 2.4或更高版本,则还需要启用mod_lbmethod_byrequests。但是下面的2.4 mod_proxy_balancer就足够了。我也有这个问题。问题是mod_lbmethod_byrequests与2.3中的 mod_proxy_balancer分离了。


14

这可以通过启用模块来解决mod_lbmethod_byrequests,如下所示:

$ sudo a2enmod lbmethod_byrequests

这在Apache 2.2.22中不是必需的,但在Apache 2.4中是必需的


2

因此,我发现了问题。这是一个简单的错字,缺少了复数形式“ s”。

使用加载了模块--enable-lbmethod-byrequests并成功运行


1

在httpd.conf中,您将看到以下几行:

#LoadModule lbmethod_bybusyness_module "${PRODUCT_HOME}/modules/mod_lbmethod_bybusyness.so"
#LoadModule lbmethod_byrequests_module "${PRODUCT_HOME}/modules/mod_lbmethod_byrequests.so"
#LoadModule lbmethod_bytraffic_module "${PRODUCT_HOME}/modules/mod_lbmethod_bytraffic.so"

取消注释该行,具体取决于要使用的负载平衡算法。在您的情况下,请取消注释以下行:

#LoadModule lbmethod_byrequests_module "${PRODUCT_HOME}/modules/mod_lbmethod_byrequests.so"

取消注释后:

LoadModule lbmethod_byrequests_module "${PRODUCT_HOME}/modules/mod_lbmethod_byrequests.so"

这应该工作正常。


0

您确定这是您应该解决的问题吗?你为什么走这条路?

Apache是​​一个出色的Web服务器,在没有前端缓存和负载平衡层的简单单服务器环境中,mod_proxy可以代理一些URL。但是,如果要进行负载平衡,则最好将其放在Apache前面的层中,而不要使用apache模块。例如,使用清漆或鱿鱼。

如果您继续前进,则需要提供有关构建和配置中正在执行的操作以及错误出现的时间和地点的更多信息。

我假设您在apache配置中确实有适当的LoadModule指令?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.