Apache 2.4 proxy_balancer i lbmethod_byrequest

13

Próbuję zbudować mój serwer Apache ze statycznymi modułami. Ale napotkasz problemy z modułem proxy_balancer. Dostaję błąd:

[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

Kiedy patrzę na załadowane moduły przy użyciu, bin/apachectl -Mnie ma tam modułu mod_lbmethod.

Mam tryied załadować moduł dodając te linie do skryptu konfiguracyjnego --enable-lbmethod-byrequesta --with-lbmethod=byrequestjednak nie pojawi się na liście modułów ani w załączonym folderze.

Ktoś wcześniej doświadczył tego problemu i znalazł rozwiązanie?

Thomas K.
źródło

Odpowiedzi:

16

Jeśli używasz Apache 2.4 lub nowszego, musisz również włączyć mod_lbmethod_byrequests. Ale poniżej 2.4 wystarczyło mod_proxy_balancer. Też miałem ten problem. Problem polega na tym, że mod_lbmethod_byrequests jest oddzielony od mod_proxy_balancer w 2.3 .

GPrathap
źródło
14

Można to rozwiązać, włączając moduł mod_lbmethod_byrequests:

$ sudo a2enmod lbmethod_byrequests

Nie było to wymagane w Apache 2.2.22, ale jest wymagane przez Apache 2.4

Brad Parks
źródło
2

Znalazłem więc problem .. To była prosta literówka, z pominięciem liczby mnogiej „s” ..

Załadowałem moduł --enable-lbmethod-byrequestsi działało

Thomas K.
źródło
1

W httpd.conf zobaczysz następujące linie:

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

Usuń komentarz z linii w zależności od algo równoważenia obciążenia, którego zamierzasz użyć. W twoim przypadku usuń komentarz z następującego wiersza:

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

po odkomentowaniu:

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

To powinno działać dobrze.

Adhikary Suman
źródło
0

Czy na pewno jest to problem, który powinieneś zawracać sobie głowy? Dlaczego idziesz tą ścieżką?

Apache to świetny serwer internetowy, a mod_proxy ma miejsce w przybliżaniu kilku adresów URL w prostych środowiskach z pojedynczym serwerem, gdzie nie ma buforowania frontonu ani warstw równoważenia obciążenia. Jeśli jednak potrzebujesz równoważenia obciążenia, prawie na pewno lepiej jest umieścić go w warstwie przed Apache, niż używać modułu apache. Np. Użyj lakieru lub kałamarnicy.

Jeśli będziesz kontynuować, musisz podać więcej informacji o tym, co dokładnie robisz w kompilacji i konfiguracji oraz gdzie i kiedy pojawia się błąd.

Zakładam, że masz odpowiednią dyrektywę LoadModule w konfiguracji apache?

Mc0e
źródło