1

我们正在尝试使用 F5 作为负载均衡器来设置 WSO2 API 管理器集群,并且在混合使用 F5 时遇到了问题。使用 F5(manager.xyz.com 映射到 node1.xyz.com:9443)在服务器(服务器/管理端口:node1.xyz.com:9443)上设置一个管理器实例。

经过多次试验和错误方法后,我们发现问题出在工作人员实例中的 API 密钥管理器 URL 配置上。使用直接服务器/端口 URL(即 node1.xyz.com:9443)可以正常工作。但是,当我们使用 F5 url(即 manager.xyz.com)时会导致以下异常。关于可能不正确或遗漏的任何想法?

最终我们希望运行两个管理器实例。因此,我们希望让这个 F5 设置正常工作,以便工作实例可以指向 F5 而不是单个管理器节点。

我在这里先向您的帮助表示感谢!

工作节点中的配置:

<APIKeyManager>
        <!--
            Server URL of the API key manager
        -->
<ServerURL>https://node1.xyz.com:9443${carbon.context}/services/</ServerURL>

Worker 节点中导致 F5 错误的配置:

<APIKeyManager>
        <!--
            Server URL of the API key manager
        -->
<ServerURL>https://manager.xyz.com${carbon.context}/services/</ServerURL>

使用 F5 时的异常:

TID: [0] [AM] [2014-12-11 16:03:37,697] ERROR {org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler} -  API authentication failure {org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler}
org.wso2.carbon.apimgt.gateway.handlers.security.APISecurityException: Error while accessing backend services for API key validation
        at org.wso2.carbon.apimgt.gateway.handlers.security.thrift.ThriftAPIDataStore.getAllURITemplates(ThriftAPIDataStore.java:99)
        at org.wso2.carbon.apimgt.gateway.handlers.security.APIKeyValidator.getAllURITemplates(APIKeyValidator.java:516)
        at org.wso2.carbon.apimgt.gateway.handlers.security.APIKeyValidator.doGetAPIInfo(APIKeyValidator.java:368)
        at org.wso2.carbon.apimgt.gateway.handlers.security.APIKeyValidator.findMatchingVerb(APIKeyValidator.java:343)
        at org.wso2.carbon.apimgt.gateway.handlers.security.APIKeyValidator.getResourceAuthenticationScheme(APIKeyValidator.java:172)
        at org.wso2.carbon.apimgt.gateway.handlers.security.oauth.OAuthAuthenticator.authenticate(OAuthAuthenticator.java:93)
        at org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler.handleRequest(APIAuthenticationHandler.java:92)
4

1 回答 1

1

您可以立即检查的几件事-

  • 确保其中的<HostName><MgtHostName>元素KeyManager_HOME/repository/conf/carbon.xml设置为 F5 的主机名。IE。“manager.xyz.com”
  • proxyPort=443属性添加到KeyManager_HOME/repository/conf/tomcat/catalina-server.xml. 如果需要,也可以配置 http 连接器。

如果您没有设置以上两个设置,则 http 302 重定向失败,这可能会解释您的情况。并且,当使用 Apache HTTPD 作为反向代理时,我们要求用户在 ProxyPass 之外配置 ProxyPassReverse。我不确定 F5 的等效配置。


如果上述方法没有帮助,我们需要了解您的部署情况如何更好地帮助您。IE。你如何集群节点。你有单独的 API 网关、keymanager 实例等吗?

我认为阅读WSO2 集群指南以更好地理解集群逻辑是值得的。

使用 APIM,您可以拥有单独的 Keymanager、API 网关(以及 API 存储、API 发布者)节点。worker-manager 分离仅适用于 API Gateway。而且,keymanager 不需要工人-经理分离。因此,您可能认为所有 API 密钥管理器节点都是提供管理器和工作器功能的混合节点。

如果您没有单独的密钥管理器,我们可以进一步了解。

于 2014-12-19T20:37:29.060 回答