Apache 2.4 proxy_balancer et lbmethod_byrequest


13

J'essaie de construire mon serveur Apache avec des modules statiques. Mais rencontrez des problèmes avec le module proxy_balancer. Je reçois une erreur:

[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

Quand je regarde les modules chargés en utilisant bin/apachectl -Mil n'y a pas de module mod_lbmethod là-bas.

J'ai essayé de charger le module en ajoutant ces lignes au script de configuration --enable-lbmethod-byrequestet --with-lbmethod=byrequestmais il n'apparaît pas dans la liste des modules ni dans le dossier inclus.

Quelqu'un a déjà rencontré ce problème et y a trouvé une solution?

Réponses:


16

Si vous utilisez Apache 2.4 ou supérieur, vous devez également activer mod_lbmethod_byrequests.Mais ci-dessous 2.4 mod_proxy_balancer était suffisant. J'ai également eu ce problème. Le problème est que mod_lbmethod_byrequests est séparé de mod_proxy_balancer dans 2.3 .


14

Cela peut être résolu en activant le module mod_lbmethod_byrequests, comme ceci:

$ sudo a2enmod lbmethod_byrequests

Cela n'était pas requis dans Apache 2.2.22, mais est requis par Apache 2.4


2

J'ai donc trouvé le problème .. C'était une simple faute de frappe, manquant le pluriel "s" ..

A chargé le module en utilisant --enable-lbmethod-byrequestset cela a fonctionné


1

Dans httpd.conf, vous verrez les lignes suivantes:

#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"

Décommentez la ligne en fonction de l'algo d'équilibrage de charge que vous allez utiliser. Dans votre cas, décommentez la ligne suivante:

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

après décommentation:

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

Cela devrait bien fonctionner.


0

Êtes-vous sûr que c'est un problème que vous devriez prendre la peine de résoudre? Pourquoi allez-vous dans cette voie?

Apache est un excellent serveur Web et il y a une place pour mod_proxy dans le proxy de quelques URL dans des environnements simples à serveur unique où il n'y a pas de mise en cache frontale et de couche (s) d'équilibrage de charge. Si vous souhaitez équilibrer la charge, il est certainement préférable de le placer dans une couche devant Apache plutôt que d'utiliser un module apache. Par exemple, utilisez du vernis ou des calmars.

Si vous continuez, vous devrez fournir plus d'informations sur ce que vous faites exactement dans votre build et votre configuration, et où et quand l'erreur apparaît.

Je suppose que vous avez la directive LoadModule appropriée dans votre configuration apache?

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.