Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

  2. 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>
  3. 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 two Gateway instances need to communicate with the Key Manager in the first API Manager instance. 

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

  5. Open the <APIM_HOME>/repository/conf/api-manager.xml file in the first API Manager instance, add two API Gateway environments under the <Environments> element and delete the <environment> that comes by default. For example:

    Code Block
    languagexml
    <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.

    Tip

    Tip: The environments you add here will be visible in a drop-down list in the API Console tab of the API Store. It allows subscribers to send API requests to any selected Gateway. 

    To stop a given Gateway environment from being displayed in the API Console tab, you can set the api-console attribute to false in the <environment> element. For example, <Environment type="production" api-console="false">.

  6. Start all instances.
  7. Log in to the API Publisher (first instance) and choose to edit an API.
  8. 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.
  9. Select both Gateways and Save and Publish the API.
  10. Log in to the API Store (of the first instance) and select click the API to open it.
  11. In the API's Overview tab, note that it has two sets if URLs for the two Gateway instances:

...