在路由到请求的api之前,我可以让Nginx在AKS k8内部调用另一个微服务吗? -目标是加快请求(减少跳数)并简化构建和部署(减少服务)。
在我们当前部署的Azure AKS(Kubernetes)群集中,我们还有一项我希望用nginx替代的附加服务。这是一个路由微服务,在执行路由之前会先调用身份API。
原因是我想像的一个常见原因,我们通过一些预定义的标头(标准的Authorization
标头或有时用于调试令牌的定制标头)获得某种身份验证令牌,和模拟),我们使用这些预定义的标头从路由API调用身份API,并获得用户身份对象作为回报。
然后,我们将这个基本的用户身份对象传递给微服务,以便它们可以快速轻松地访问用户和角色。
一个简短的解释是:
显然有合并Router.API和UserIdentity.API的选项,但是保持关注点分离似乎是一个更好的选择。我只是删除Route.API,以保持这种分离,但是让Nginx替我完成了这项工作。
答案 0 :(得分:2)
ProxyKit(https://github.com/damianh/ProxyKit)可以替代nginx-它使您可以轻松地向某些请求添加自定义逻辑(例如,我基于URL中的租户查找API密钥),并且可以缓存响应使用CacheCow(请参阅ProxyKit源代码中的食谱)