2 Replies Latest reply on Jun 6, 2016 4:23 PM by Juliano Carlos da Silva

    Mod_Cluster 1.3.1 + Wildfly 10

    Juliano Carlos da Silva Newbie

      I was configured the mod_cluster in apache 2.4 on listen port 6666 and wildlfy 10 on port 8009 with multcast protocol.

       

      But after lookup in log the wildfly is connected in 6666 but when apache will connect to send a ping to wildfly ajp 8009 he is try to send on port 14126, then if i change de port on wildfly to this one 14126, everything works fine.

      Any one know about this issue?

       

      http.conf

      Listen 0.0.0.0:6666
      <VirtualHost *:6666>
          <Directory />
              Require all granted
          </Directory>
          KeepAliveTimeout 60
          MaxKeepAliveRequests 0
          ManagerBalancerName XXX
          ServerAdvertise On
          AdvertiseFrequency 5
          AllowDisplay On
          EnableMCPMReceive
          #LogLevel debug
          ErrorLog /var/log/httpd/mod_cluster/error.log
          CustomLog /var/log/httpd/mod_cluster/access.log combined
      </VirtualHost>
      

       

       

      standalone-full-ha.xml    

           <subsystem xmlns="urn:jboss:domain:modcluster:2.0">
                  <mod-cluster-config advertise-socket="modcluster" balancer="XXX" load-balancing-group="XXX-group" connector="ajp">
                      <simple-load-provider factor="1"/>
                  </mod-cluster-config>
              </subsystem>
           
           <socket-binding name="ajp" port="${jboss.ajp.port:14126}"/> <!-- was 8009, but dont work -->
      
        • 1. Re: Mod_Cluster 1.3.1 + Wildfly 10
          Michal Karm Babacek Apprentice

          Dear Juliano,

           

          apparently, this is a network configuration issue. Could you provide us with your Apache HTTP Server's error_log on LogLevel Debug? Furthermore, could you show us your server.log? Please, rename any sensitive data such as keys and hostnames before posting.

           

          Some explanation that might help you with debugging

           

          Apache HTTP Server listens on all of your interfaces (0.0.0.0), and that means, for the

          EnableMCPMReceive

          VirtualHost, that it has to pick one address to send out via UDP Multicast. This address is the one Wildfly will try to contact.

          I suggest you add two more specific settings to your Apache HTTP Server configuration to debug your problem:

          ServerAdvertise On http://pick_ip_address_wildfly_can_access:6666

          The aforementioned directive (used instead of yours ServerAdvertise On) makes sure that a deterministic, expected address:port is sent via UDP Multicast. If you test on your Wildfly machine with Advertize.java utility, you should see something like this:

          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 - the first argument is a UDP Multicast address the Apache HTTP Server sends datagrams to
          • 23364 - the second argument is a port used for it
          • 10.10.10.11 - the last argument is an IP address of the interface that receives data from the same network Apache HTTP Server advertises to - which could be set on Apache HTTP Server side with AdvertiseBindAddress directive, see below. It means that "pick_ip_address_wildfly_can_access" must be something that can talk to 10.10.10.11; e.g. 10.10.10.13, if they are both on e.g. interface em1 or eth0 on respective servers.
          AdvertiseBindAddress 10.10.10.13:23364
          

          As you can see in the aforementioned directive, we explicitly picked the interface that is bound to 10.10.10.13 address on the Apache HTTP Server, i.e. our "ip_address_wildfly_can_access". The port is not arbitrary, it is the same one used in the undermentioned directives. The equivalent on Wildfly side is interface="public" attribute -- which is the default for socket bindings. If you wish to set modcluster socket binding to listen for UDP multicast on a different interface - change it. The undermentioned AdvertiseGroup directive is an auxiliary one in your case - you don't need to set it as you use the default. It must match what you have in your modcluster socketbinding:

          AdvertiseGroup 224.0.1.105:23364
          
          <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/>

           

          I hope it is clear now, that any NAT or port mapping on router or other network shenanigans could easily affect your configuration.

          Apache HTTP Server must advertise on an interface Wildfly listens on, Apache HTTP Server must advertise an address Wildfly can access and Wildfly must report its address and port Apache HTTP Server can access.


          Let us know


          Cheers

          -K-

          • 2. Re: Mod_Cluster 1.3.1 + Wildfly 10
            Juliano Carlos da Silva Newbie

            Log have this. Then i change the port from 8009 to 14126 and its work normal.

             

            [Mon Jun 06 17:21:49.689336 2016] [authz_core:debug] [pid 4756] mod_authz_core.c(802): [client 10.0.0.5:50812] AH01626: authorization result of Require ip 10.0.0: granted
            [Mon Jun 06 17:21:49.689342 2016] [authz_core:debug] [pid 4756] mod_authz_core.c(802): [client 10.0.0.5:50812] AH01626: authorization result of Require not ip 10.0.0.37: neutral
            [Mon Jun 06 17:21:49.689346 2016] [authz_core:debug] [pid 4756] mod_authz_core.c(802): [client 10.0.0.5:50812] AH01626: authorization result of <RequireAll>: granted
            [Mon Jun 06 17:21:49.689350 2016] [authz_core:debug] [pid 4756] mod_authz_core.c(802): [client 10.0.0.5:50812] AH01626: authorization result of <RequireAny>: granted
            [Mon Jun 06 17:21:49.689396 2016] [authz_core:debug] [pid 4756] mod_authz_core.c(802): [client 10.0.0.5:50812] AH01626: authorization result of Require all granted: granted
            [Mon Jun 06 17:21:49.689401 2016] [authz_core:debug] [pid 4756] mod_authz_core.c(802): [client 10.0.0.5:50812] AH01626: authorization result of <RequireAny>: granted
            [Mon Jun 06 17:21:49.689420 2016] [:debug] [pid 4756] mod_manager.c(2987): manager_handler STATUS (/opt/rh/httpd24/root/var/www/html/index.html) processing: "JVMRoute=wildfly%3Ablue&Load=60"
            [Mon Jun 06 17:21:49.689426 2016] [:debug] [pid 4756] mod_manager.c(1965): Processing STATUS
            [Mon Jun 06 17:21:49.689442 2016] [:debug] [pid 4756] mod_proxy_cluster.c(317): Created: reusing worker for ajp://10.0.0.5:8009
            [Mon Jun 06 17:21:49.689448 2016] [proxy:debug] [pid 4756] proxy_util.c(1812): AH00933: ajp: too soon to retry worker for (10.0.0.5)
            [Mon Jun 06 17:21:49.689452 2016] [proxy:error] [pid 4756] AH00940: ajp: disabled connection for (10.0.0.5)
            [Mon Jun 06 17:21:49.689456 2016] [:debug] [pid 4756] mod_proxy_cluster.c(2431): proxy_cluster_isup: pingpong ajp://10.0.0.5:14126/ failed
            [Mon Jun 06 17:21:49.689461 2016] [:debug] [pid 4756] mod_manager.c(3038): manager_handler STATUS  OK
            

             

            and with advertise.java i got

            Apache Server To Apache Server

             java Advertize 224.0.1.105 23364 10.0.0.4
            Linux like OS
            ready waiting...
            received: HTTP/1.0 200 OK
            Date: Mon, 06 Jun 2016 20:15:12 GMT
            Sequence: 13
            Digest: 650a2f0dd250e1b165e3ca79a2861185
            Server: 2adcbb3b-1f2f-43bd-bb26-fd5d05f9fdf9
            X-Manager-Address: 10.0.0.4:6666
            X-Manager-Url: /2adcbb3b-1f2f-43bd-bb26-fd5d05f9fdf9
            X-Manager-Protocol: http
            X-Manager-Host: APACHE_HOST_NAME
            
            
            
            
            received from /10.0.0.4:23364
            received: HTTP/1.0 200 OK
            Date: Mon, 06 Jun 2016 20:15:17 GMT
            Sequence: 14
            Digest: 13e1d2e269cc338c45e726c0cc3d08c0
            Server: 2adcbb3b-1f2f-43bd-bb26-fd5d05f9fdf9
            X-Manager-Address: 10.0.0.4:6666
            X-Manager-Url: /2adcbb3b-1f2f-43bd-bb26-fd5d05f9fdf9
            X-Manager-Protocol: http
            X-Manager-Host: APACHE_HOST_NAME
            

             

            Wildfly Server to Apache Server

            java Advertize 224.0.1.105 23364 10.0.0.5
            Linux like OS
            ready waiting...
            received: HTTP/1.0 200 OK
            Date: Mon, 06 Jun 2016 20:16:27 GMT
            Sequence: 28
            Digest: cfbca8fec9a123e93da478320602769b
            Server: 2adcbb3b-1f2f-43bd-bb26-fd5d05f9fdf9
            X-Manager-Address: 10.77.1.154:6666
            X-Manager-Url: /2adcbb3b-1f2f-43bd-bb26-fd5d05f9fdf9
            X-Manager-Protocol: http
            X-Manager-Host: APACHE_HOST_NAME
            
            
            
            
            received from /10.77.1.154:23364
            received: HTTP/1.0 200 OK
            Date: Mon, 06 Jun 2016 20:16:32 GMT
            Sequence: 29
            Digest: 51ed5ea3b0148f6801a17c1fdc693a89
            Server: 2adcbb3b-1f2f-43bd-bb26-fd5d05f9fdf9
            X-Manager-Address: 10.77.1.154:6666
            X-Manager-Url: /2adcbb3b-1f2f-43bd-bb26-fd5d05f9fdf9
            X-Manager-Protocol: http
            X-Manager-Host: APACHE_HOST_NAME