如何将域*子目录*(不是子域)指向 AWS EC2 实例

How to point a domain *subdirectory* (not subdomain) to AWS EC2 Instance

我在 AWS 上有两个 EC2 实例。 我可以将我的主域名 (sample.com) 指向 Route 53 中的一个实例。 但是如何将另一个域 (sample.com/blog) 指向另一个 EC2 实例?

对于此行为,您不能仅使用 Route 53,因为子文件夹不是 DNS 解析的一部分。

您可以使用许多解决方案,但网站最常见的解决方案是使用 CloudFront 或 ALB 来使用基于路径的路由。

CloudFront

使用此解决方案,您可以将 CloudFront 置于您的域之前(Route 53 将路由至 CloudFront 分配。

转发的位置称为原点,因此您将为每个目标主机创建一个原点。

CloudFront 中的路由机制将是行为,默认行为用于转发到您的默认主机。

然后,您将根据要路由到其他来源(例如 /blog*)的域的路径模式创建额外的行为。

有关此选项的更多信息,请参阅 Can I use a single CloudFront web distribution to serve content from multiple origins using multiple behaviors? 文档。

应用程序负载均衡器

使用此选项,您的 Route 53 记录将转发到 ALB。

您将为每个 EC2 实例创建一个目标组,然后在目标组中注册此主机。

在 ALB 的侦听器中,默认情况下,您会将所有流量转发到一个目标组,然后根据路径模式向侦听器添加一个附加规则,以便在适当时转发到另一个目标组。

Advanced Request Routing for AWS Application Load Balancers 博客 post 中提供了更多信息。