...
- Copy the API Manager product pack in 3 separate folders.
Let's add offsets to the default ports of the two Gateway instances. A port offset ensures that there are no port conflicts when more than one WSO2 products run on the same server. Open the
<APIM_HOME>/repository/conf/carbon.xml
file in the second API Manager instance and add an offset of 1 to its default port. This increments its default server port, which is 9443, by 1.Code Block <Offset>1</Offset>
Open the
<APIM_HOME>/repository/conf/carbon.xml
file in the third API Manager instance and add an offset of 2 to its default port. This increments its default server port, which is 9443, by 2.Code Block <Offset>2</Offset>
The thrift server should be disabled in the two Gateway instances.
Open the
<APIM_HOME>/repository/conf/api-manager.xml
files in the second and the third API Manager instances and set the<EnableThriftServer>
property to false. For example:Code Block <EnableThriftServer>false</EnableThriftServer>
The two Gateway instances need to communicate with the Key Manager in the first API Manager instance.
Open the
<APIM_HOME>/repository/conf/api-manager.xml
files in the first and the second Gateway instances and change the following:Code Block <AuthManager> <ServerURL>https://<IP of the first instance>:9443/services/</ServerURL> <Username>admin</Username> <Password>admin</Password> ... </AuthManager> ... <APIKeyValidator> <ServerURL>https://<IP of the first instance>:9443/services/</ServerURL> <Username>admin</Username> <Password>admin</Password> .... <RevokeAPIURL>https://<IP of the first instance>:8243/revoke</RevokeAPIURL> </APIKeyValidator>
You are done configuring the two API Gateway instances. Let's point to them from the first instance.
Open the
<APIM_HOME>/repository/conf/api-manager.xml
file in the first API Manager instance, add add two API Gateway environments under environments under the<Environments>
element and delete the<environment>
that comes by default. For example:Code Block language xml <Environments> <Environment type="production"> <Name>Production Gateway</Name> <Description>Production Gateway Environment</Description> <ServerURL>https://localhost:9444/services/</ServerURL> <Username>admin</Username> <Password>admin</Password> <GatewayEndpoint>http://localhost:8281,https://localhost:8244</GatewayEndpoint> </Environment> <Environment type="sandbox"> <Name>Sandbox Gateway</Name> <Description>Sandbox Gateway Environment</Description> <ServerURL>https://localhost:9445/services/</ServerURL> <Username>admin</Username> <Password>admin</Password> <GatewayEndpoint>http://localhost:8282,https://localhost:8245</GatewayEndpoint> </Environment> </Environments>
Tip Tip: The Gateway environment names must be unique.
- Start all instances.
- Log in to the API Publisher (first instance) and choose to edit an API.
- Navigate to the Manage tab, expand the Gateway Environments section and note that the two Gateway environments listed there.
In a typical production setup, you will publish the API to the sandbox Gateway first and then publish it to the production Gateway. In this case, let's publish to both. - Select both Gateways and Save and Publish the API.
- Log in to the API Store (of the first instance) and select click the API to open it.
- In the API's Overview tab, note that it has two sets if URLs for the two Gateway instances:
...