Apache 2.4 proxy_balancer und lbmethod_byrequest


13

Ich versuche, meinen Apache-Server mit statischen Modulen aufzubauen. Es treten jedoch einige Probleme mit dem Modul proxy_balancer auf. Ich erhalte einen Fehler:

[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

Wenn ich mir die geladenen Module mit anschaue, bin/apachectl -Mgibt es dort kein mod_lbmethod-Modul.

Ich habe tryied das Modul zu laden , indem Sie die folgenden Zeilen in dem Konfigurationsskript Hinzufügen --enable-lbmethod-byrequestund --with-lbmethod=byrequestaber es zeigt nicht in der Modulliste nach oben noch in den im Lieferumfang enthaltenen Ordner.

Jemand hat dieses Problem schon einmal erlebt und eine Lösung dafür gefunden?

Antworten:


16

Wenn Sie Apache 2.4 oder höher verwenden, müssen Sie auch mod_lbmethod_byrequests aktivieren. Der folgende 2.4 mod_proxy_balancer war ausreichend. Ich hatte auch dieses Problem. Das Problem ist, dass mod_lbmethod_byrequests von mod_proxy_balancer in 2.3 abgespalten wurden .


14

Dies kann behoben werden, indem das Modul mod_lbmethod_byrequestswie folgt aktiviert wird :

$ sudo a2enmod lbmethod_byrequests

Dies war in Apache 2.2.22 nicht erforderlich, wird aber in Apache 2.4 benötigt


2

Also fand ich das Problem. Es war ein einfacher Tippfehler, bei dem die Pluralform "s" fehlte.

Laden Sie das Modul mit --enable-lbmethod-byrequestsund es hat funktioniert


1

In httpd.conf sehen Sie folgende Zeilen:

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

Deaktivieren Sie die Zeile je nach dem zu verwendenden Lastenausgleichsalgo. In deinem Fall entkommentiere die folgende Zeile:

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

nach dem auskommentieren:

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

Dies sollte gut funktionieren.


0

Sind Sie sicher, dass Sie dieses Problem lösen sollten? Warum gehst du diesen Weg?

Apache ist ein großartiger Webserver, und in einfachen Einzelserverumgebungen, in denen es keine Front-End-Caching- und Load-Balancing-Schicht (en) gibt, kann mod_proxy einige URLs ersetzen. Wenn Sie jedoch einen Lastenausgleich wünschen, ist es mit ziemlicher Sicherheit besser, ihn vor Apache zu platzieren, als ein Apache-Modul zu verwenden. ZB mit Lack oder Tintenfisch.

Wenn Sie weitermachen, müssen Sie weitere Informationen darüber bereitstellen, was Sie in Ihrem Build und in Ihrer Konfiguration genau tun und wo und wann der Fehler auftritt.

Ich nehme an, Sie haben die entsprechende LoadModule-Direktive in Ihrer Apache-Konfiguration?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.