是否可以使用 aws elb 仅转发部分路径?
Is it possible to forward only part of a path using aws elb?
我正在尝试在我的 ALB 中创建规则,因此我不会将部分路径转发到目标。因此,例如,我的基础服务可能会接受像
这样的调用
但在 ALB 中,我可能会向路径添加一个版本以用于路由目的:
或者我可以打电话给
两个版本在不同的目标群体中都是 运行。我在想我可以删除版本部分,这样我的应用程序就不必关心版本控制了。但是,我如何处理它并不明显,而且似乎不可能。
Application Load Balancer 目前不支持此功能。
但是,CloudFront 有一个名为 Origin Path 的设置,它在将请求发送到原始服务器(在本例中为原始 ALB)之前添加到请求 URI 之前,因此您可以设置如果您希望将 example.com/dogs
作为 example.com/v1/dogs
发送到 ALB,则为 /v1
的原始路径。 CloudFront 是一个 CDN,但它还有许多其他用途,例如请求重写——它本质上是一个具有缓存的大规模、全球分布式反向代理,支持动态和静态内容。除了 CloudFront 之外,更复杂的重写还需要 Lambda@Edge,但在某些请求路径模式前添加一个字符串是基本功能集的一部分。
我正在尝试在我的 ALB 中创建规则,因此我不会将部分路径转发到目标。因此,例如,我的基础服务可能会接受像
这样的调用但在 ALB 中,我可能会向路径添加一个版本以用于路由目的:
或者我可以打电话给
两个版本在不同的目标群体中都是 运行。我在想我可以删除版本部分,这样我的应用程序就不必关心版本控制了。但是,我如何处理它并不明显,而且似乎不可能。
Application Load Balancer 目前不支持此功能。
但是,CloudFront 有一个名为 Origin Path 的设置,它在将请求发送到原始服务器(在本例中为原始 ALB)之前添加到请求 URI 之前,因此您可以设置如果您希望将 example.com/dogs
作为 example.com/v1/dogs
发送到 ALB,则为 /v1
的原始路径。 CloudFront 是一个 CDN,但它还有许多其他用途,例如请求重写——它本质上是一个具有缓存的大规模、全球分布式反向代理,支持动态和静态内容。除了 CloudFront 之外,更复杂的重写还需要 Lambda@Edge,但在某些请求路径模式前添加一个字符串是基本功能集的一部分。