0

我在 EKS 中部署了一个 AWS ALB 入口控制器,k8s 创建了一个 AWS ALB 并创建了一些规​​则来转发流量:

正如文件所说:

https://docs.aws.amazon.com//elasticloadbalancing/latest/application/load-balancer-listeners.html

路径条件

您可以使用路径条件来定义根据请求中的 URL 路由请求的规则(也称为基于路径的路由)。路径模式仅应用于 URL 的路径,而不应用于其查询参数。路径模式区分大小写,最长可达 128 个字符,并且可以包含以下任何字符。

A–Z、a–z、0–9

_ - 。$ / ~ " ' @ : +

& (使用 &)

*。(匹配 0 个或多个字符)

? (精确匹配 1 个字符)


我有两个规则

1. IF Path is /api/* THEN Forward to XXX
2. IF Path is /* THEN Forward to YYY

我的网络应用程序中的URL是:

 1. example.com/api/users/1 Forward to XXX [200 - OK]
 2. example.com/signin Forward to YYY [200 - OK]
 3. example.com/login-user returns 404 (the hyphen is recognized as a pattern)

预期:将请求 3 转发到 YYY 的规则

我试过这个:

IF Path is /* THEN Forward to YYY

不走运,在文档中什么也没说,那么我怎样才能逃避连字符以将请求 3 转发给 YYY?

PD:我有大约 50 个带有连字符的 uri,我不想重写它们。

4

1 回答 1

0

有点小技巧,但试试/login?user/*你的规则。

问号应与连字符匹配。当然它会匹配任何字符,但这不应该影响你的 url 解析,除非你的 URL 路径中有一些奇怪的冲突,例如 /loginfuser 或其他东西。

于 2019-11-12T03:43:34.370 回答