【问题标题】:How do I configure WSO2 API Manager Gateway and Key Manager Cluster settings?如何配置 WSO2 API 管理器网关和密钥管理器集群设置?
【发布时间】:2014-01-20 20:53:11
【问题描述】:

我正在使用以下架构实现 WSO2 API 管理器: 单个发布者/存储节点。 两台服务器都运行网关和密钥管理器的 2 节点集群。

当我关注时:http://docs.wso2.org/display/CLUSTER420/Clustering+API+Manager#ClusteringAPIManager-Configuringcomponentfeatures

然后我进入 api-manager.xml 的“配置组件之间的连接”步骤 配置网关时我很困惑:

   <APIKeyManager>
     <ServerURL>https://keymanager.apim-wso2.com:9444/services/</ServerURL>        
     <Username>admin</Username>  
     <Password>admin</Password>   
     ...
   </APIKeyManager> 

API 密钥管理器的每个网关/密钥管理器节点是否应指向自身?

此外,当我为 authmanager 和 APIGateway 配置其 api-manager.xml 时,我的 Publisher 和 Store 位于不同的服务器上,我是否将其指向集群名称? 配置时:

   <AuthManager>
       <ServerURL>https://keymanager.apim-wso2.com:9444/services/</ServerURL>      
       <Username>admin</Username>
       <Password>admin</Password>
   </AuthManager> 
   <APIGateway>  
     <Environments>
        <Environment type="hybrid">
          <ServerURL>https://gwmanager.apim-wso2.com:9445/services/</ServerURL>         
          <Username>admin</Username>
          <Password>admin</Password> 
          <GatewayEndpoint>http://gwmanager.apim-wso2.com:8282,https://gwmanager.apim-         
             wso2.com:8245</GatewayEndpoint>
        </Environment>
      </Environments>
    </APIGateway> 

【问题讨论】:

  • 根据您之前的问题 [1],您在一个节点上有 store+publisher,在另一个节点上有 keymanager+gateway。与您在这里的部署相同吗?
  • 没错。商店/发布者在一个节点上,而密钥管理器和网关在另一个节点上(实际上将有多个其他节点用于密钥管理器/网关场以获得更多 CPU)
  • 仅供参考,请参考 docs.wso2.org/display/AM140/Distributed+Deployment 了解 WSO2 API Manager 的不同分布式部署模式。

标签: wso2 cluster-computing gateway


【解决方案1】:

在回答你的问题之前,让我解释一下他们是如何指出的。

  1. 配置网关时,需要指定keymanager。

  2. 配置存储时,需要同时指定keymanager和gateway。

  3. 配置发布者时,需要指定网关。(1.4.0之前发布者也需要key manager)

需要第一个,因为网关获取访问 API 的请求,这些请求必须经过身份验证。所以网关应该知道keymanager的端点。

另一方面,在创建新 API 时,它需要触发关于它们的网关,因此发布者需要知道网关的端点,如第 3 条。

Keymanager 和网关都需要类似的存储。

“配置组件之间的连接”中给出的图表也说明了这一点

假设(根据 [1])网关+密钥管理器在您的部署的同一节点中,是的,网关+密钥管理器节点中的元素应配置为指向自身。

例如,

<APIKeyManager> 
  <ServerURL>https://gateway-plus-keymanager.apim-wso2.com:9444/services/</ServerURL>
  <Username>admin</Username>
  <Password>admin</Password>
  ...
</APIKeyManager>

同样,如果你有商店+发布者节点

<APIKeyManager> 
  <ServerURL>https://gateway-plus-keymanager.apim-wso2.com:9444/services/</ServerURL>
  <Username>admin</Username>
  <Password>admin</Password>
  ...
</APIKeyManager>

<AuthManager>
    <ServerURL>https://gateway-plus-keymanager.apim-wso2.com:9444/services/</ServerURL>
    <Username>admin</Username>
    <Password>admin</Password>
</AuthManager>

<APIGateway>
  <Environments>
    <Environment type="hybrid">
        <ServerURL>https://gateway-plus-keymanager.apim-wso2.com:9444/services/</ServerURL>
        <Username>admin</Username>
        <Password>admin</Password>          
        <GatewayEndpoint>http://gateway-plus-keymanager.apim-wso2.com:8281,https://gateway-plus-keymanager.apim-wso2.com:8244</GatewayEndpoint>
    </Environment>
  </Environments>    
</APIGateway>

这里注意节点 gateway+keymanager 节点的主机名为 gateway-plus-keymanager.apim-wso2.com 并以端口偏移 1 启动服务器。

[1]How do I configure WSO2 API Manager Gateway and Key Manager Cluster settings?

【讨论】:

  • 感谢您的回复,澄清一下,在我的密钥管理器+网关服务器上,我可以将密钥管理器配置为 localhost(因为这对于该服务器最有效)。从 pub/store 节点我应该配置为使用我的集群 DNS 名称作为密钥管理器/网关场。 API 网关也是如此,我应该配置为使用我的集群 DNS 名称作为密钥管理器/网关场。
  • 是的,没错。根据您上面的 cmets,这将是一种有效的方法。这样,当请求到达网关时,它将使用本地 KeyManager。但我希望您考虑此部署的安全方面,因为 KeyManager 通常部署在防火墙内,而网关可能不会。
【解决方案2】:

如果您使用的是 DNS 循环,那么两个 serverURL 都应该指向 https://gateway-plus-keymanager.apim-wso2.com:9444/services/,并且您的 DNS 应该配置为拥有两个 GW/KM 服务器的 IP

【讨论】:

    【解决方案3】:

    您好,我相信您的部署架构存在问题。如果您没有在它们前面使用负载平衡器 (LB),那么拥有两个网关 (GW) 节点是没有意义的。因此,您的 GW/KM 2 节点应该以负载均衡器为前端。您在GW节点中指向的KM URL实际上应该指向可以在两个KM节点之间分配流量的(LB)。

    【讨论】:

    • 在某个时候我们会有一个LB。在此之前,我们使用 DNS 循环和 DNS 条目每次反弹到不同的 IP。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多