Apache HTTP / mod_jk работает только когда активен один рабочий - PullRequest
0 голосов
/ 06 декабря 2018

Я добавил следующий файл mod-jk.conf и включил его в httpd.conf:

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info 
JkLogStampFormat  "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"

JkMount /MyApp/* loadbalancer
JkShmFile logs/jk.shm 

JkMount /status status

Я также добавил следующий файл worker.properties:

worker.list=loadbalancer,status

worker.node1.port=8009
worker.node1.host=10.1.4.49
worker.node1.type=ajp13
worker.node1.lbfactor=1 

worker.node2.port=8009
worker.node2.host=10.1.4.51
worker.node2.type=ajp13
worker.node2.lbfactor=1

worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2

worker.status.type=status

КогдаУ меня есть два работника, на которых http-сервер подключается к серверу / приложению tocat, но он говорит, что соединение с сервером закрыто.Однако, если я уберу одного из рабочих (неважно, кто из них), я смогу нормально подключиться к серверу / приложению tomcat.

По какой-то причине мой балансировщик нагрузки работает только при наличии 1 активногоработник.

1 Ответ

0 голосов
/ 10 декабря 2018

При использовании балансировщика нагрузки с липкими сеансами вам необходимо настроить каждый tomcat с правильным jvmRoute, который соответствует тому, что вы определили в файле worker.properties.В моем случае у меня есть рабочие с именами node1 и node2, поэтому я должен ожидать найти

<Engine name="Catalina" defaultHost="localhost" jvmRoute="node1">

на коте по адресу 10.1.4.49 и

<Engine name="Catalina" defaultHost="localhost" jvmRoute="node2">

на коте по адресу 10.1.4,51

...