我正在尝试使用以下设置:
apache 2.4 + mod_cluster 1.3 Final + ubuntu 14.04.2-server + Wildfly 8.1.0 Final
我成功地将wildfly上下文广告给了apache,但是当我尝试击中负载均衡器时,我得到了500.
此外,当我启动wildfly后重新启动apache时,我收到以下错误:
MODCLUSTER000042: Error MEM sending STATUS command to 192.168.56.101/192.168.56.101:10001, configuration will be reset: MEM: Can't read node
Run Code Online (Sandbox Code Playgroud)
这是我的配置:
mod_cluster.conf
<IfModule manager_module>
Listen *:10001
ManagerBalancerName modcluster
ProxyPass /cluster-demo balancer://modcluster stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse /cluster-demo balancer://modcluster
ProxyPreserveHost On
<VirtualHost *:10001>
<Location />
Require all granted
</Location>
KeepAliveTimeout 60
MaxKeepAliveRequests 0
EnableMCPMReceive On
AdvertiseFrequency 5
ServerAdvertise On http://192.168.56.101:10001
AdvertiseGroup 224.0.1.105:23364
<Location /mod_cluster-manager>
SetHandler mod_cluster-manager
Require all granted
</Location>
</VirtualHost> …Run Code Online (Sandbox Code Playgroud) 我们目前正在测试从Wildfly 8.2.0迁移到Wildfly 9.0.0.CR1(或从快照构建的CR2).系统是使用mod_cluster的集群,并且在VPS上运行,实际上阻止它使用多播.
在8.2.0我们一直使用以下配置的modcluster运行良好:
<mod-cluster-config proxy-list="1.2.3.4:10001,1.2.3.5:10001" advertise="false" connector="ajp">
<dynamic-load-provider>
<load-metric type="cpu"/>
</dynamic-load-provider>
</mod-cluster-config>
Run Code Online (Sandbox Code Playgroud)
不幸的是,在9.0.0上,不推荐使用proxy-list,服务器的启动将以错误结束.可怕的文档缺乏,但经过几次尝试后,我发现代理列表被替换为代理,这些代理是出站套接字绑定列表.因此,配置如下所示:
<mod-cluster-config proxies="mc-prox1 mc-prox2" advertise="false" connector="ajp">
<dynamic-load-provider>
<load-metric type="cpu"/>
</dynamic-load-provider>
</mod-cluster-config>
Run Code Online (Sandbox Code Playgroud)
并且应该将以下内容添加到相应的socket-binding-group中(在我的情况下为full-ha):
<outbound-socket-binding name="mc-prox1">
<remote-destination host="1.2.3.4" port="10001"/>
</outbound-socket-binding>
<outbound-socket-binding name="mc-prox2">
<remote-destination host="1.2.3.5" port="10001"/>
</outbound-socket-binding>
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.在此之后,httpd集群开始注册节点.但是我从负载均衡器得到错误.当我查看/ mod_cluster-manager时,我看到一些Node REMOVED行,还有很多错误,如:
ERROR [org.jboss.modcluster] (UndertowEventHandlerAdapter - 1) MODCLUSTER000042: Error MEM sending STATUS command to node1/1.2.3.4:10001, configuration will be reset: MEM: Can't read node
Run Code Online (Sandbox Code Playgroud)
在mod_cluster的日志中有相应的警告:
manager_handler STATUS error: MEM: Can't read node
据我所知,问题是虽然wildfly/modcluster能够连接到httpd/mod_cluster,但它不能以其他方式工作.不幸的是,即使经过广泛的努力,我也被困住了.
有人可以帮助为没有广告的Wildfly 9.0.0设置mod_cluster吗?非常感谢.
我们已经把 httpd 作为负载均衡器放在了wildfly 前面。我正在使用wildfly 10.1.0。
我有 3 台机器,一台主机和两台从机。
在主人的 domain.xml 中,我有:
<subsystem xmlns="urn:jboss:domain:modcluster:2.0">
<mod-cluster-config proxies="mc-prox1" connector="ajp">
<dynamic-load-provider>
<load-metric type="busyness"/>
</dynamic-load-provider>
</mod-cluster-config>
</subsystem>
<socket-binding-groups>
<socket-binding-group name="full-ha-sockets" default-interface="public">
<socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
<socket-binding name="http" port="${jboss.http.port:8080}"/>
<socket-binding name="https" port="${jboss.https.port:8443}"/>
<socket-binding name="iiop" interface="unsecure" port="3528"/>
<socket-binding name="iiop-ssl" interface="unsecure" port="3529"/>
<socket-binding name="jgroups-mping" interface="private" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
<socket-binding name="jgroups-tcp" interface="private" port="7600"/>
<socket-binding name="jgroups-tcp-fd" interface="private" port="57600"/>
<socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
<socket-binding name="jgroups-udp-fd" interface="private" port="54200"/>
<socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/>
<socket-binding name="txn-recovery-environment" port="4712"/>
<socket-binding name="txn-status-manager" port="4713"/>
<outbound-socket-binding name="mail-smtp"> …Run Code Online (Sandbox Code Playgroud) 我正在 JBoss EAP 7 上认证我的应用程序。我的应用程序在独立模式下工作,但在集群模式下,我的应用程序已部署,但我无法登录。我再次重新路由到登录网址。
我已经使用 mod_cluster 设置了集群。
Load Balancer Server 日志中没有错误日志,也没有在集群的各个节点上。
在我的测试环境中,我的负载均衡器和 2 个服务器节点在同一台机器上。我为 JBoss 节点提供了不同的端口和实例 ID 以区分节点。
我正在从集群中的一个节点共享我的 mod_cluster.conf 和 JBoss standalone-ha.xml 提取物。
以下是 standalone-ha.xml 文件中的片段:
Modcluster 设置是:
<subsystem xmlns="urn:jboss:domain:modcluster:2.0">
<mod-cluster-config advertise-socket="modcluster" proxies="proxy1" balancer="testcluster" advertise="true" connector="ajp">
<dynamic-load-provider>
<load-metric type="busyness"/>
</dynamic-load-provider>
</mod-cluster-config>
</subsystem>
Run Code Online (Sandbox Code Playgroud)
暗流设置是:
<subsystem xmlns="urn:jboss:domain:undertow:3.1" instance-id="node1">
<buffer-cache name="default"/>
<server name="default-server">
<ajp-listener name="ajp" socket-binding="ajp"/>
<http-listener name="default" socket-binding="http" redirect-socket="https"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
<servlet-container name="default">
<jsp-config/>
<websockets/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/> …Run Code Online (Sandbox Code Playgroud) 我有两个以独立模式运行的Wildfly 9节点.
192.168.1.34 - node1 - Listening on 8080
192.168.1.35 - node2 - Listening on 8080
192.168.1.33 - myserver - Listening on 8080
Run Code Online (Sandbox Code Playgroud)
我想在两个节点之间进行负载平衡,以便进入myserver的请求在两个节点之间分配.我是Wildfly的新手,但我看到许多对内置mod_cluster的引用.
在多个JBoss节点之间进行负载平衡的最简单方法是什么?
我用Apache 2.4.6运行CentOS 7.我正在尝试使用mod_cluster 1.2.6创建Wildfly/JBoss集群.我已经在Mac OSX上成功实现了这一点,我只是想在服务器环境中启动并运行它.
我的群集和虚拟主机配置如下所示:
LoadModule slotmem_module modules/mod_slotmem.so
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule advertise_module modules/mod_advertise.so
LoadModule manager_module modules/mod_manager.so
MemManagerFile /var/cache/httpd
<VirtualHost *:80>
<Directory />
Order deny,allow
Allow from all
</Directory>
KeepAliveTimeout 60
MaxKeepAliveRequests 0
ManagerBalancerName myBalancer
ServerAdvertise On
AdvertiseFrequency 3
EnableMCPMReceive
<Location /mod_cluster-manager>
SetHandler mod_cluster-manager
Order deny,allow
Allow from all
</Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
服务器启动正常,但是当我尝试访问时,http://localhost/mod_cluster-manager我得到403说拒绝权限.这是我的error_log文件中的确切消息:
[Wed Jul 30 11:53:21.547109 2014] [authz_core:error] [pid 6012] [client 127.0.0.1:36425] AH01630: client denied by server configuration: /mod_cluster-manager
Run Code Online (Sandbox Code Playgroud)
我没有遇到任何这样的问题,让它在OSX上工作,所以我不完全确定问题是什么或为什么我得到403.据我了解,该Allow from all指令应该足以授予我访问权限通过localhost连接.有没有其他人碰到类似的东西?我错过了什么吗?