我有一个AWS Application Load Balancer,可根据路径将请求转发到两个微服务。我遇到的问题是其中一种微服务使用的AWS Cognito。用户进行身份验证时,将使用诸如令牌之类的参数向负载均衡器发送请求。负载均衡器使用转发操作将此路由到相关的微服务。但是,由于身份验证参数在转发过程中丢失,因此转发进入无限循环。
端口443上的路径转发:
/microservice1Path/* -> forward to microservice1 on port 80
/oauth2/* -> forward to microservice1 on port 80
everything else -> forward to microservice2 on port 80
以下步骤在无限循环发生之前发生:
我尝试删除/ oauth2 / *上的转发规则,但这导致负载均衡器转发到microservice2而不是停留在microservice1上
我还没有尝试直接从负载均衡器(ALB)设置cognito,因为我想将其保留在microservice1中。但如果没有其他办法,我可以尝试一下。但是,我发现奇怪的是,前向操作会丢失查询字符串/请求参数。可能会破坏其他功能。
我希望ALB保留请求参数,这应该可以解决问题。只有我不知道该怎么做。