...
- Make the following configuration changes in the
<ES_HOME>/repository/conf/axis2/axis2.xml
file. These changes are related to clustering.- Enable clustering for this node by setting
enable
totrue
in theclustering
tag.<clustering class="org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent" enable="true">
- Set the
membershipScheme
parameter towka
to enable the well-known address registration method (this node will send cluster initiation messages to WKA members that we define later).<parameter name="membershipScheme">wka</parameter>
- Specify the name of the cluster domain that this node is set to join.
<parameter name="domain">wso2.es.domain</parameter>
- Specify the host used to communicate cluster messages. This is the IP address of the publisher node you are configuring.
<parameter name="localMemberHost">xxx.xxx.xxx.xx3</parameter>
- Specify the port used to communicate cluster messages:
<parameter name="localMemberPort">4251</parameter>
Specify the well known member. Here, the well known member is the other publisher node.
Code Block language xml <members> <member> <hostName>xxx.xxx.xxx.xx4</hostName> <port>4252</port> </member> </members>
The
subDomain
property must be commented out since this setup does not involve setup that supports worker manager separation.Code Block language xml <parameter name="properties"> <property name="backendServerURL" value="https://${hostName}:${httpsPort}/services/"/> <property name="mgtConsoleURL" value="https://${hostName}:${httpsPort}/"/> <!--property name="subDomain" value="mgt"/--> </parameter>
- Enable clustering for this node by setting
- Make the following configuration changes change in the
<ES_HOME>/repository/conf/carbon.xml
file. Configure theHostName
for each publisher node.
<HostName>store.es-wso2.com</HostName> Enable SVN-based deployment synchronization with the
AutoCommit
property marked astrue
.Code Block language xml <DeploymentSynchronizer> <Enabled>true</Enabled> <AutoCommit>true</AutoCommit> <AutoCheckout>true</AutoCheckout> <RepositoryType>svn</RepositoryType> <SvnUrl>xxxxxxxxxxxxxxxxx</SvnUrl> <SvnUser>xxxx</SvnUser> <SvnPassword>xxxx</SvnPassword> <SvnUrlAppendTenantId>true</SvnUrlAppendTenantId> </DeploymentSynchronizer>
Modify the
<ES_HOME>/repository/conf/securityidentity/sso-idp-config.xml
file with theAssertionConsumerService
URLs ofSSOIdentityProviderConfig
as indicated below.Code Block language xml <Issuer>store</Issuer> <AssertionConsumerService>https://store.es-wso2.com/store/acs</AssertionConsumerService> <SignResponse>true</SignResponse> <CustomLoginPage>/store/login.jag</CustomLoginPage> <AssertionConsumerService>https://publisher.es-wso2.com/publisher/acs</AssertionConsumerService> <SignResponse>true</SignResponse> <CustomLoginPage>/publisher/controllers/login.jag</CustomLoginPage>
Configure single sign-on with the Identity Server. To do this, modify the
<ES_HOME>/repository/deployment/server/jaggeryapps/publisher/config/publisher.json
file with the following. You must configure this for all nodes that require single sign-on.Code Block language xml "authentication":{ "activeMethod":"sso", "methods":{ "sso":{ "attributes":{ "issuer":"publisher", "identityProviderURL":"https://publisher.es-wso2.com/samlsso", "keyStorePassword":"wso2carbon", "identityAlias":"wso2carbon", "responseSigningEnabled":"true", "acs":"%https.host%/publisher/acs", "keyStoreName":"/repository/resources/security/wso2carbon.jks" } }, "basic":{ "attributes":{ } } } }
- Map the host names to the IP. Add the following host entries to your DNS, or “/etc/hosts” file (in Linux) in all the nodes of the cluster. You have to map the host names with the IP address of the load balancer.
<IP-of-Nginx> store.es-wso2.com
...