Мы пытаемся настроить кластер диспетчера API WSO2 с F5 в качестве балансировщика нагрузки, и у нас возникли проблемы с наличием F5 в миксе. Один экземпляр менеджера установлен на сервере (порт сервера/администратора: node1.xyz.com:9443) с помощью клавиши F5 (manager.xyz.com, который сопоставляется с node1.xyz.com:9443).
После нескольких проб и ошибок мы обнаружили, что проблема связана с конфигурацией URL-адреса диспетчера ключей API в рабочем экземпляре. Использование прямого URL-адреса сервера/порта (например, node1.xyz.com:9443) работает нормально. Однако когда мы используем URL-адрес F5 (например, manager.xyz.com), это приводит к исключению, приведенному ниже. Любые мысли о том, что может быть неправильным или отсутствующим?
В конечном итоге мы хотим иметь два запущенных экземпляра менеджера. Итак, нам нравится, чтобы эта настройка F5 работала так, чтобы рабочие экземпляры могли указывать на F5, а не на отдельный узел менеджера.
Спасибо за помощь в продвижении!
Конфигурация рабочего узла, которая работает:
<APIKeyManager>
<!--
Server URL of the API key manager
-->
<ServerURL>https://node1.xyz.com:9443${carbon.context}/services/</ServerURL>
Конфигурация в рабочем узле, вызывающая ошибку 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)