1 2 Previous Next 22 Replies Latest reply on Jun 21, 2017 7:09 AM by Aditya Neurgaonkar

    Load Balancing Cluster not working with Apache HTTP Server 2.4.6 and JBoss EAP 7

    Aditya Neurgaonkar Newbie

      I am certifying my application on JBoss EAP 7. My application works on standalone mode but in cluster mode, my application gets deployed but I am unable to login. I am again re-routed to login url.
      I have setup cluster using mod_cluster.

      There is no error log in Load Balancer Server logs neither on individual nodes of the cluster.
      In my test environment, my load balancer and 2 server nodes are on same machine. I have given JBoss nodes different ports and instance-ids to differentiate the nodes.

      Are there any session replication and/or sticky session issues in JBoss EAP 7.x?


      I am sharing my mod_cluster.conf and JBoss standalone-ha.xml extracts from one of the nodes in cluster. Thanks in advance. Please ignore commas in XML snippets, having style issues.

       

      Following are the snippets in standalone-ha.xml file:

      Modcluster settings are:

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

      Undertow settings are:

      <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"/>
        
      </handlers>
        
      <filters>
        
      <response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/>
        
      <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
        
      </filters>
      </subsystem>

      Contents of Socket Binding Group are:

      <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" 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">
        
      <remote-destination host="localhost" port="25"/>
        
      </outbound-socket-binding>
        
      <outbound-socket-binding name="proxy1">
        
      <!-- host and port number of the load-balancer. -->
        
      <remote-destination host="x.x.x.x" port="81"/>
        
      </outbound-socket-binding>
      </socket-binding-group>

      Contents of mod_cluster.conf are as follows:

      LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
      LoadModule cluster_slotmem_module modules/mod_cluster_slotmem.so
      LoadModule manager_module modules/mod_manager.so
      LoadModule advertise_module modules/mod_advertise.so 
      MemManagerFile "//httpd2.4.6Home/var/cache/mod_cluster" 
      <IfModule manager_module>
           Listen 81
           <VirtualHost *:81>
           <Directory />
                Require all granted
          
      </Directory>
           <Location />
                Require all granted
          
      </Location>
           <Location /mod_cluster_manager>
                SetHandler mod_cluster-manager
               
      Require all granted
          
      </Location>
           KeepAliveTimeout 60
           MaxKeepAliveRequests 0
           ManagerBalancerName testcluster
          
      AdvertiseFrequency 5
           ServerAdvertise on
          
      EnableMCPMReceive
           </VirtualHost>
      </IfModule>

        1 2 Previous Next