How to configure WSO2 G-Reg with ELB - Updated

This is the updated post for configuring WSO2 ELB 2.1.0 and G-Reg 4.6.0 releases. If you are using earlier releases, please refer the early post.

 When we are fronting WSO2 ELB(Elastic Load Balancer) for a WSO2 G-Reg(Governance Registry) node, all the incoming messages will go through ELB node and it will act as a HTTP and HTTPS proxy to GREG node. So when you configure ELB to the GREG front, GREG won't be able to access alone without the ELB.

1. Download WSO2 ELB and WSO2 GREG. Rename the extracted ELB as ELB-HOME and extracted GREG as GREG-HOME.

ELB Configuration 

2. Go to ELB-HOME/repository/conf/loadbalancer.conf and add the following entry. There can be multiple entries according to the clustering requirements.

 governance {

  domains   {

           wso2.governance.domain {

               tenant_range *;
               group_mgt_port 4000;

 3. Update hosts files in nodes with relevant IP and Domain information. In my example, G-Reg and ELB will be hosted on the same node. 
if not this domain should be mapped into ELB node.

 4 Navigate to the repository/conf/axis2 directory and open the axis2.xml file and update localMemberPort parameter value as below. This port number should not conflict with any other port.

<parameter name="localMemberPort">5000</parameter>

Greg Configuration

4. Then clustering should be enabled in G-Reg as well. To enable it, go to GREG-HOME/repository/conf/axis2/axis2.xml and modify clustering configuration as below.

<clustering class="org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent" enable="true">
 <parameter name="membershipScheme">wka </parameter> 

 5. Uncomment localmemberhost element in GREG-HOME/repository/conf/axis2/axis2.xml and specify the IP address (or host name) to be exposed to members of the cluster.

<parameter name="localMemberHost"></parameter>

6. Then define clustering domain information.(in GREG-HOME/repository/conf/axis2/axis2.xml). This "domain" name value should be same as in loadbalancer.conf.

<parameter name="domain">wso2.governance.domain</parameter>
<parameter name="localMemberPort">4250</parameter>

7. As shown below, add "subDomain" information into the same axis2.xml file.

<parameter name="properties">
    <property name="backendServerURL" value="https://${hostName}:${httpsPort}/services/"/>
    <property name="mgtConsoleURL" value="https://${hostName}:${httpsPort}/"/>
    <property name="subDomain" value="mgt"/>

8. Add load balancer IP address or host information in to same axis2.xml file. In this example scenario IP address is

        <hostname> </hostname>

9. Open the GREG-HOME/repository/conf/tomcat/catalina-server.xml file and add HTTP and HTTPS proxy port information to that file.

<connector port="9763" protocol="org.apache.coyote.http11.Http11NioProtocol" proxyport="8280"/> 
<connector port="9443" protocol="org.apache.coyote.http11.Http11NioProtocol" proxyport="8243"/>

10. Go to GREG-HOME/repository/conf/carbon.xml file and update the "HostName" and "MgtHostName" as below.


11. This step only need to be followed if you are hosting G-Reg and ELB both in same node. In this sample we have configured both ELB and G-Reg in same node. Therefore we should avoid port conflicts between ELB and G-Reg. To avoid such problems we can use "Offset" entry in carbon.xml file. Go to GREG-HOME/repository/conf/carbon.xml and change port offset value.


12. Start the ELB instance

13. Start the G-Reg instance(s)

14.You can access G-Reg instance using following URL        ""


Popular posts from this blog

XSLT - Modify Date and DateTime value

Integrate With Mutual Certificate Authentication based Service

Yield Price Sri Lanka - Android Application