AWS 应用程序负载均衡器路径路由问题

AWS Application Load balancer path routing issue

我有一个相当全面的应用程序负载平衡器,它设置了基于主机名的路由。

但是,我正在尝试介绍以下内容,但无法使路径路由正常工作。

即我有这个顺序。

  1. licence.example.com/api -> 目标群体 B
  2. licence.example.com -> 目标群体 A

我看到的是所有内容都路由到目标组 A。

我将规则 1 设置为主机 licence.example.com,路径:/api/* 规则 2 设置为主机 licence.example.com

我试过通过调换它们来改变顺序。我已经尝试将规则 2 的路径添加为 /* 但它不起作用。

难道AWS负载均衡器不具备这种最基本的配置吗? 我是否必须将其丢弃并使用 nginx?

两个问题。

  1. UI 中显示的顺序很重要。更高级别的规则列表具有更高的优先级。所以首先我必须确保首先发生与路径的匹配。

  2. 对 /api/* 的请求通过路径 /api/ 包含在应用程序中。没有像 nginx 这样的重写会把它去掉。因此,解决方法是对在目标组 B 上侦听的应用程序进行小的更改,以期待 /api/ 路径。我将其设为配置值,然后一切正常。