लोड संतुलन क्लस्टर Apache HTTP सर्वर 2.4.6 और JBoss EAP 7 के साथ काम नहीं कर रहा है



load-balancing mod-cluster (1)

मूल रूप से आपके पास दो विकल्प हैं - या तो JBoss स्वयं domain मोड का उपयोग करके एक क्लस्टर बनाएं या सत्र प्रतिकृति और एसो के लिए आवश्यक तत्वों को शामिल करने के लिए स्टैंडअलोन कॉन्फ़िगरेशन का विस्तार करें।

डोमेन मोड में, अधिकांश कॉन्फ़िगरेशन ईएपी 7 में पहले से मौजूद हैं - बस domain-full-ha प्रोफ़ाइल का विस्तार करें।

आवश्यक परिवर्तन में आपके वेब ऐप web.xml में distributable ध्वज को सक्षम करना शामिल है - बस अपने web.xml में <distributable/> जोड़ें। अगले झंडे पर अपने हस्ताक्षर प्रणाली में एकल चिह्न जोड़ें:

  <host name="default-host" alias="localhost">                                                           
     <location name="/" handler="welcome-content"/>                                                     
     <filter-ref name="server-header"/>                                                                 
     <filter-ref name="x-powered-by-header"/>                                                           
     <single-sign-on/>    <!-- FIXME:  enable SSO here -->                                                                              
   </host>   

और क्लस्टर किए गए SSO को काम करने के लिए आवश्यक कैश कंटेनर को सक्षम करें - इसके लिए Infinishpan सबसिस्टम की आवश्यकता होती है, जो अब आपके पास हो सकता है, यदि आप केवल standalone-ha प्रोफ़ाइल को विस्तारित करते हैं। यदि आप Infinispan सबसिस्टम नहीं देखते हैं, तो standalone-full-ha प्रोफाइल के standalone-full-ha पर एक नज़र है। यदि आपके पास यह पहले से नहीं है, तो web कैश जोड़ें:

 /subsystem=infinispan/cache-container=web/distributed-cache=concurrent:add
 /subsystem=infinispan/cache-container=web/distributed-cache=concurrent/store=file:add 

फिर से, यदि आप स्टैंडअलोन या डोमेन मोड के पूर्ण-हा प्रोफ़ाइल का उपयोग करते हैं, तो आपके पास शायद ये पहले से ही होंगे।

इसके अलावा, आप का उल्लेख नहीं है, अगर आप प्राधिकरण के लिए JBoss सुरक्षा डोमेन का उपयोग करते हैं या नहीं। यदि आप कुछ कस्टम नियम तंत्र का उपयोग करते हैं, तो सुनिश्चित करें कि आपने सत्र कुकी या टोकन सही ढंग से सेट किया है - सही डोमेन और संदर्भ आदि के लिए।

मैं JBoss EAP 7 पर अपने आवेदन को प्रमाणित कर रहा हूं। मेरा आवेदन स्टैंडअलोन मोड पर काम करता है, लेकिन क्लस्टर मोड में, मेरा एप्लिकेशन तैनात हो जाता है, लेकिन मैं लॉगिन करने में असमर्थ हूं। मुझे फिर से url लॉगिन करने के लिए फिर से रूट किया गया है।
मेरे पास mod_cluster का उपयोग करके सेटअप क्लस्टर है।

लोड बैलेंसर सर्वर लॉग में कोई त्रुटि लॉग नहीं है और न ही क्लस्टर के अलग-अलग नोड्स पर।
मेरे परीक्षण वातावरण में, मेरा लोड बैलेंसर और 2 सर्वर नोड एक ही मशीन पर हैं। मैंने नोड्स को अलग करने के लिए JBoss नोड्स को अलग-अलग पोर्ट और उदाहरण-आईडी दिए हैं।
मैं क्लस्टर में एक नोड से अपने mod_cluster.conf और JBoss स्टैंडअलोन- ha.xml अर्क साझा कर रहा हूं। अग्रिम में धन्यवाद..
कृपया प्रश्न को कम न करें, कृपया प्रश्न को फिर से लिखने के लिए टिप्पणियों में कोई सुझाव भेजें।

स्टैंडअलोन- ha.xml फ़ाइल में स्निपेट निम्नलिखित हैं:

मॉडक्लेस्टर सेटिंग्स हैं:

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

अंडरटेकिंग सेटिंग्स हैं:

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

सॉकेट बाइंडिंग ग्रुप की सामग्री हैं:

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

Mod_cluster.conf की सामग्री इस प्रकार है:

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>




mod-cluster