我们正在尝试使用 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)