Apache Mod_群集管理器无法访问节点

Apache Mod_群集管理器无法访问节点,apache,unix,jboss,wildfly,httpd.conf,Apache,Unix,Jboss,Wildfly,Httpd.conf,我已经安装了WildFly10,并在域模式下启动了它,有两台服务器,端口分别为SET 100和200 我已经配置了ApacheHTTPD2.4和Mod_集群管理器1.3.1 VirtualHost在端口8080和服务器名测试集群上侦听 当我访问测试集群:8080/mod_cluster_管理器时,一切正常。 当我将Mod_cluster Manager中的侦听端口更改为80时,重新启动Apache并访问test cluster/Mod_cluster_Manager,我可以看到该页面,但没有JB

我已经安装了WildFly10,并在域模式下启动了它,有两台服务器,端口分别为SET 100和200

我已经配置了ApacheHTTPD2.4和Mod_集群管理器1.3.1 VirtualHost在端口8080和服务器名测试集群上侦听

当我访问测试集群:8080/mod_cluster_管理器时,一切正常。 当我将Mod_cluster Manager中的侦听端口更改为80时,重新启动Apache并访问test cluster/Mod_cluster_Manager,我可以看到该页面,但没有JBoss/WildFly服务器节点注册


有什么问题吗?

我找到了解决办法。您需要修改iptables以打开JBoss/WildFly向集群广播消息的broadacast地址

我找到了解决办法。您需要修改iptables以打开JBoss/WildFly向集群广播消息的broadacast地址

UDP多播播发和接口 假设您的Apache HTTP服务器侦听您的所有接口(0.0.0.0),这意味着,对于
启用cpmReceive
虚拟主机,它必须选择一个地址通过UDP多播发送出去。这个地址是Wildfly试图联系的地址

如果Wildfly找不到Apache HTTP服务器,我建议您在Apache HTTP服务器配置中添加两个更具体的设置来调试问题:


服务器广告http://pick_ip_address_wildfly_can_access:6666

上述指令(代替上的服务器广告)确保通过UDP多播发送确定性的预期地址:端口。 如果您使用实用程序在Wildfly机器上进行测试, 您应该看到如下内容:

karm@wildfly-box:~/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-第一个参数是Apache HTTP服务器向其发送数据报的UDP多播地址
  • 23364-第二个参数是用于它的端口
  • 10.10.10.11-最后一个参数是从Apache HTTP服务器播发到的同一网络接收数据的接口的IP地址-可以使用AdvertiseBindAddress指令在Apache HTTP服务器端进行设置,见下文。这意味着“pick_ip_address_wildfly_can_access”必须能够与10.10.10.11对话;e、 g.10.10.10.13,如果它们都在各自服务器上的接口em1或eth0上

地址:10.10.10.13:23364

正如您在前面的指令中所看到的,我们显式地选择了绑定到Apache HTTP服务器上10.10.10.13地址的接口,即我们的“ip地址\u wildfly\u can\u访问”。 端口不是任意的,它与下面提到的指令中使用的端口相同

Wildfly端的等效属性是interface=“public”属性——这是套接字绑定的默认属性。如果您希望将modcluster套接字绑定设置为在其他接口上侦听UDP多播,请更改它

下面提到的AdvertiseGroup指令在默认情况下是一个辅助指令-在使用默认值时不需要设置它。它必须与modcluster socketbinding中的内容相匹配:


广告组224.0.1.105:23364


我希望现在很清楚,路由器上的任何NAT或端口映射,或iptables或其他网络骗局都可能很容易影响您的配置

  • Apache HTTP服务器必须在Wildfly侦听的接口上播发
  • Apache HTTP服务器必须公布Wildfly可以访问的地址,并且
  • Wildfly必须报告Apache HTTP服务器可以访问的地址和端口
UDP Multicat播发和接口 假设您的Apache HTTP服务器侦听您的所有接口(0.0.0.0),这意味着,对于
启用cpmReceive
虚拟主机,它必须选择一个地址通过UDP多播发送出去。这个地址是Wildfly试图联系的地址

如果Wildfly找不到Apache HTTP服务器,我建议您在Apache HTTP服务器配置中添加两个更具体的设置来调试问题:


服务器广告http://pick_ip_address_wildfly_can_access:6666

上述指令(代替上的服务器广告)确保通过UDP多播发送确定性的预期地址:端口。 如果您使用实用程序在Wildfly机器上进行测试, 您应该看到如下内容:

karm@wildfly-box:~/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-第一个参数是Apache HTTP服务器向其发送数据报的UDP多播地址
  • 23364-第二个参数是用于它的端口
  • 10.10.10.11-最后一个参数是从Apache HTTP服务器播发到的同一网络接收数据的接口的IP地址-可以使用AdvertiseBindAddress指令在Apache HTTP服务器端进行设置,见下文。这意味着“pick_ip_address_wildfly_can_access”必须能够与10.10.10.11对话;e、 g.10.10.10.13,如果它们都在各自服务器上的接口em1或eth0上

地址:10.10.10.13:23364

正如您在前面的指令中所看到的,我们显式地选择了绑定到Apache HTTP服务器上10.10.10.13地址的接口,即我们的“ip地址\u wildfly\u can\u访问”。 端口不是任意的,它与下面提到的指令中使用的端口相同

Wildfly端的等效属性是interface=“public”属性——这是套接字绑定的默认属性。如果您希望将modcluster套接字绑定设置为在其他接口上侦听UDP多播,请更改它

下面提到的AdvertiseGroup指令在默认情况下是一个辅助指令-在使用默认值时不需要设置它。它必须与modcluster socketbinding中的内容相匹配:


广告组224.0.1.105:23364


我希望现在很清楚,路由器上的任何NAT或端口映射,或iptables或其他网络骗局都会很容易地影响网络