2015-10-20 1 views
0

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:

screenshot

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.

+0

-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. –

+0

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 –

+0

Merci Domen d'avoir creusé dedans. Je vais disséquer le dernier mod_cluster et revenir vers vous. –

Répondre

1

problème était sur commande: ServerAdvertise Sur je l'ai changé: ServerAdvertise sur IP: 6666

J'ai aussi delelted section hôte virtuel entier pour le port 80 dans httpd.conf Après cela, il a travaillé