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.

Я tryied загрузить модуль, добавив следующие строки в скрипт конфигурации --enable-lbmethod-byrequestи , --with-lbmethod=byrequestно он не отображается в списке модулей , ни в прилагаемом папке.

Кто-то сталкивался с этой проблемой раньше и получил решение?

Ответы:


16

Если вы используете Apache 2.4 или выше, необходимо также включить mod_lbmethod_byrequests. Но ниже 2.4 было достаточно mod_proxy_balancer. У меня тоже была эта проблема. Проблема в том, что mod_lbmethod_byrequests отделен от mod_proxy_balancer в 2.3 .


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 - отличный веб-сервер, и у mod_proxy есть место для передачи нескольких URL-адресов в простых односерверных средах, где нет кэширования внешнего уровня и уровней балансировки нагрузки. Однако если вы хотите сбалансировать нагрузку, вам, скорее всего, лучше поместить ее в слой перед Apache, а не использовать модуль apache. Например, используйте лак или кальмаров.

Если вы продолжите, вам нужно будет предоставить больше информации о том, что именно вы делаете в своей сборке и конфигурации, а также где и когда появляется ошибка.

Я полагаю, у вас есть соответствующая директива LoadModule в вашей конфигурации apache?

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.