Je veux configurer un cluster Wildfly autonome avec 2 nœuds. Pour ce faire j'ai mis en place 2 machines virtuelles fedora22. Sur les deux nœuds, j'ai installé Wildfly 9.0.0.Final et l'exécuter avec le fichier de configuration standalone-ha.xml
. Sur le premier noeud, j'ai également installé httpd 2.4 et mod_cluster 1.3.1. Les paramètres actuels sont répertoriés ci-dessous. Sur les deux machines, j'ai désactivé le pare-feu et SELinux.Wildfly 9.0 cluster autonome avec httpd2.4. et mod_cluster1.3.1
configuration Nœud1 (192.168.2.240)
mod_cluster.conf
LoadModule cluster_slotmem_module modules/mod_cluster_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
CreateBalancers 1
<IfModule manager_module>
Listen 192.168.2.240:6666
ManagerBalancerName mycluster
<VirtualHost 192.168.2.240:6666>
KeepAliveTimeout 300
MaxKeepAliveRequests 0
AdvertiseFrequency 5
ServerAdvertise On
EnableMCPMReceive
<Location />
Require all granted
</Location>
<Location /mod_cluster_manager>
SetHandler mod_cluster-manager
Require all granted
</Location>
</VirtualHost>
httpd.conf
ServerRoot "/ etc/httpd"
Listen 80 Inclure conf.modules.d/*. utilisateur apache conf Groupe apache ServerAdmin root @ localhost
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">
AllowOverride None
Require all granted
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel debug
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
#Includes mod_cluster.conf
IncludeOptional conf.d/*.conf
<VirtualHost *:80>
ServerAdmin [email protected]
ProxyPass/balancer://mycluster stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse/balancer://mycluster
<Location />
Require all granted
</location>
</VirtualHost>
autonome-ha.xml (je suis coller uniquement des pièces importantes)
<?xml version='1.0' encoding='UTF-8'?>
<server name="node1" xmlns="urn:jboss:domain:3.0">
<subsystem xmlns="urn:jboss:domain:modcluster:2.0">
<mod-cluster-config advertise-socket="modcluster" connector="ajp">
<dynamic-load-provider>
<load-metric type="cpu"/>
</dynamic-load-provider>
</mod-cluster-config>
</subsystem>
<subsystem xmlns="urn:jboss:domain:undertow:2.0">
<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="cloudflow" 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"/>
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="WildFly/9"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>
</subsystem>
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:192.168.2.240}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:192.168.2.240}"/>
</interface>
<interface name="unsecure">
<inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
</interface>
</interfaces>
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
<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="jgroups-mping" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
<socket-binding name="jgroups-tcp" port="7600"/>
<socket-binding name="jgroups-tcp-fd" port="57600"/>
<socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
<socket-binding name="jgroups-udp-fd" 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">
<remote-destination host="localhost" port="25"/>
</outbound-socket-binding>
</socket-binding-group>
configuration Nœud2 (192.168.2.226)
<?xml version='1.0' encoding='UTF-8'?>
<server name="node2" xmlns="urn:jboss:domain:3.0">
<subsystem xmlns="urn:jboss:domain:modcluster:2.0">
<mod-cluster-config advertise-socket="modcluster" connector="ajp">
<dynamic-load-provider>
<load-metric type="cpu"/>
</dynamic-load-provider>
</mod-cluster-config>
</subsystem>
<subsystem xmlns="urn:jboss:domain:undertow:2.0">
<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="cloudflow" 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"/>
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="WildFly/9"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>
</subsystem>
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:192.168.2.226}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:192.168.2.226}"/>
</interface>
<interface name="unsecure">
<inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
</interface>
</interfaces>
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
<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="jgroups-mping" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
<socket-binding name="jgroups-tcp" port="7600"/>
<socket-binding name="jgroups-tcp-fd" port="57600"/>
<socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
<socket-binding name="jgroups-udp-fd" 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">
<remote-destination host="localhost" port="25"/>
</outbound-socket-binding>
</socket-binding-group>
mes paramètres d'application
pom.xml
<contextRoot>/</contextRoot>
jboss-web.xml
<jboss-web>
<context-root>/</context-root>
<virtual-host>cloudflow</virtual-host>
</jboss-web>
jboss-web.xml
<distributable />
Je commence httpd avec systemctl start httpd
puis-je exécuter wildfly avec ./standalone.sh -c standalone-ha.xml
. Les serveurs démarrent sans erreur et déploient l'application. Je peux voir ma demande sur les deux nœuds sur localhost: 8080
Sur 192.168.2.240:6666/mod_cluster_manager je peux voir l'écran suivant:
Quand je veux obtenir mon application dans le navigateur sur l'adresse http://192.168.2.240/ mais je reçois 503 Service non disponible lorsque je redémarre httpd et la page 404 - Lettre de quelques secondes non trouvé. Sur http://192.168.2.240:6666/ je reçois la page de test de Fedora. Error log de httpd ne montre aucune erreur seulement les messages de débogage.
Je pense que j'ai un problème de configuration lorsque mon application est déployée.
-t-il changer quelque chose si vous déployez votre application avec le contexte '' '/ cloudflow''' (sans la configuration de vhost) au lieu de' ''/'' ''? Ce pourrait être un bug dans mc. Je vais essayer de reproduire. –
rien n'a aidé donc j'ai changé httpd en 2.2. et mod_cluster à 1.2.6 et cela fonctionne bien. Je pense qu'il y a un bug dans le dernier modcluster ou httpd. Httpd essaie de pinger le port 27233 qui n'est même pas ouvert –
Merci Domen d'avoir creusé dedans. Je vais disséquer le dernier mod_cluster et revenir vers vous. –