如何将请求路由到亚马逊的特定实例?

时间:2015-05-29 07:41:29

标签: amazon-web-services amazon-ec2 routing amazon-elb

我的cname(abc.com)指向我的弹性IP,需要为三个不同的应用程序创建三个EC2实例(例如Instance1,Instance2,Instance3)。

现在我希望获得以下结果: 如果用户点击“abc.com/App1”,请求应重定向到Instance1。如果用户点击“abc.com/App2”,请求应重定向到Instance2。如果用户点击“abc.com/App3”,请求应该是重定向到Instance3。

所有这些实例都应该独立工作。并且,如果其中任何一个发生故障,它不应该影响其他人。 我们不能使用子域名。我想在ELB找到一些东西。

1 个答案:

答案 0 :(得分:1)

ELB不提供基于路径的路由。连接到ELB的所有实例都会收到一部分传入请求。

但是,CloudFront确实支持基于路径的路由。您可以将每个实例配置为“自定义源”,并配置要路由到它的路径模式。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern

当然,这不是CloudFront的“主要目的”,但它在这个应用程序中运行得非常好。

CloudFront实际上是一种缓存反向代理CDN服务,所以如果你走这条路线,你也可以减轻你的后端机器的某些工作量,或者你可以完全通过将所有请求头转发到源来禁用缓存。从您的实例返回适当的Cache-Control:标头。

CloudFront分配可以与Route 53中的域名关联,其方式与ELB完全相同 - 使用别名记录。

奖励:您还可以轻松地获取其他路径并将其直接路由到S3,以便从S3存储桶中提供静态资产。