2016-04-26 3 views
0

Я установил WildFly10 и начал его в режиме домена с двумя серверами с портом ofsset 100 и 200.Mod_cluster узлов доступа косяк менеджер

я настроен Apache HTTPD 2.4 и Mod_cluster Менеджер 1.3.1 с VirtualHost на порту 8080 и тестового кластера ServerName.

Когда я нахожусь в тестовом кластере: 8080/mod_cluster_manager все работает нормально. Когда я меняю порт прослушивания в Mod_cluster Manager на 80, перезапустите Apache и зайдите в test-cluster/mod_cluster_manager, я вижу эту страницу, но нет зарегистрированных узлов сервера JBoss/WildFly ...

Что может быть проблема?

ответ

0

Я нашел решение. Вам нужно изменить iptables, чтобы открыть широковещательный адрес, по которому JBoss/WildFly передает сообщения в кластер.

1

UDP MultiCat реклама и интерфейсы

Предположим, что ваш Apache HTTP Server прослушивает все ваши интерфейсы (0.0.0.0), а это значит, для EnableMCPMReceive VirtualHost, что он должен выбрать один адрес, чтобы отправить через многоадресную рассылку UDP. Этот адрес тот, с которым Wildfly попытается связаться.

Если Wildfly не может найти Apache HTTP Server, то я предлагаю вам добавить еще две специфические настройки в конфигурации Apache HTTP Server, чтобы отладить проблему:

ServerAdvertise On http://pick_ip_address_wildfly_can_access:6666

выше директивы (используется вместо ServerAdvertise On) гарантирует, что детерминированный ожидаемый адрес: порт отправляется через многоадресную рассылку UDP. Если вы проверить на своей машине с Wildfly Advertize.java утилиты, вы должны увидеть что-то вроде этого:

[email protected]:~/Projects/MOD_CLUSTER$ java Advertize 224.0.1.105 23364 10.10.10.11 

Linux like OS 
ready waiting... 
received: HTTP/1.0 200 OK 
Date: Tue, 31 May 2016 07:51:00 GMT 
Sequence: 11 
Digest: f23cf884bce70445742540dd84e1a060 
Server: 2eceb85a-2704-11e6-9b43-e7ff3db3d039 
X-Manager-Address: pick_ip_address_wildfly_can_access:6666 
X-Manager-Url: /2eceb85a-2704-11e6-9b43-e7ff3db3d039 
X-Manager-Protocol: http 
X-Manager-Host: localhost.localdomain 
  • 224.0.1.105 - первый аргумент является UDP Multicast-адрес сервера Apache HTTP отправляет дейтаграммы
  • 23364 - второй аргумент - это порт, который используется для него
  • 10.10.10.11 - последний аргумент - это IP-адрес интерфейса, который получает данные из той же сети, на которую сообщается HTTP-сервер Apache, - который может быть установлен на Apache HTTP Server с рекламойBindAddress directc , см. ниже. Это означает, что «pick_ip_address_wildfly_can_access» должен быть тем, что может говорить с 10.10.10.11; например 10.10.10.13, если они оба напр. интерфейс em1 или eth0 на соответствующих серверах.

AdvertiseBindAddress 10.10.10.13:23364

Как вы можете видеть в вышеупомянутой директиве, мы явно выбрали интерфейс, который привязан к 10.10.10.13 адресу на Apache HTTP Server, то есть наш «ip_address_wildfly_can_access». Порт не является произвольным, он тот же, что и в нижеследующих директивах.

Эквивалент на стороне Wildfly является атрибутом interface = "public", который является стандартным для привязок сокетов. Если вы хотите установить привязку сокета modcluster для прослушивания многоадресной рассылки UDP на другом интерфейсе - измените его.

Недопустимая директива AdvertisingGroup является вспомогательной в случае по умолчанию - вам не нужно устанавливать ее, как вы используете по умолчанию. Он должен соответствовать тому, что вы имеете в своем modcluster socketbinding:

AdvertiseGroup 224.0.1.105:23364

<socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/>

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

  • Apache HTTP Server должен рекламировать на интерфейсе Wildfly прослушивает,
  • Apache HTTP Server должен рекламировать адрес Wildfly может получить доступ и
  • Wildfly должен доложить его адрес и порт HTTP-сервер Apache может получить доступ к

 Смежные вопросы

  • Нет связанных вопросов^_^