Apache负载平衡

Xit*_*rum 27 apache

4,我尝试在apache Web服务器中配置负载均衡器但是没有成功.
在我的httpd.conf中

LoadModule proxy_module modules/mod_proxy.so

<VirtualHost mysuperwebapp.com:80>
    ServerName mysuperwebapp.com
    <Location /balancer-manager>
        SetHandler balancer-manager
        Order Deny,Allow
        Deny from all
        Allow from .mysuperwebapp.com
    </Location>
    <Proxy balancer://mycluster>
        BalancerMember http://localhost:9999
        BalancerMember http://localhost:9998 status=+H
    </Proxy>
    <Proxy *>
        Order Allow,Deny
        Allow From All
    </Proxy>
    ProxyPreserveHost On
    ProxyPass /balancer-manager !
    ProxyPass / balancer://mycluster/
    ProxyPassReverse / http://localhost:9999/
    ProxyPassReverse / http://localhost:9998/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

当我启动apache服务时,就说了

AH00526: Syntax error on line 184 of /Users/aptos/Documents/workspace/Webserver/conf/httpd.conf:
BalancerMember Can't find 'byrequests' lb method
Run Code Online (Sandbox Code Playgroud)

有人能告诉我我做错了吗?非常感谢你.

man*_*nta 35

在我的情况下,我得到错误,ProxyPass Can't find 'byrequests' lb method因为我使用proxy_balancer_module模块

错误是因为我错过了取消httpd.conf中所需模块下面的注释

LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

在httpd.conf文件中取消注释上面的模块条目(默认情况下已注释)解决了我的问题.

(使用Apache 2.4.3)

  • 使用`a2enmod lbmethod_byrequests slotmem_shm` (16认同)

Jea*_*ana 8

您需要加载mod_proxy_balancer.在支持它的发行版上,最好的方法是使用a2enmod:

sudo a2enmod proxy_balancer
Run Code Online (Sandbox Code Playgroud)

它为您完成所有工作.

  • 根据doc:http://httpd.apache.org/docs/2.4/mod/mod_lbmethod_byrequests.html,mod_lbmethod_byrequests与版本2.4中的mod_proxy_balancer分离. (4认同)
  • 要在2.4中启用mod_lbmethod_byrequests:运行此命令:`a2enmod lbmethod_byrequests` (2认同)