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 может получить доступ к