首先对不起我的无知,但有一个概念,这是不是很清楚,我在awselb字。
我在cloudfront上部署了一个前端站点,并在EC2示例中运行了一个API。
我想避免的是有2个域来提供相同的数据。
例如,我想使用https://example.com/post访问我的站点,您将看到站点本身(来自cloudfront的HTML)。
但是如果您尝试通过HTTP/HEADER Accept: application/json
访问https://example.com/post,您将能够从API服务器本身(EC2示例)看到json内容。
使用ELB有可能吗?或者我必须在EC2示例中使用一些技巧,比如将nginx设置为代理,并在没有头部的情况下提供cloudfront内容?
先谢了。
1条答案
按热度按时间nwnhqdif1#
我不确定是否可以使用acceptheader.来完成,但是,如果您使用不同的根路径来分隔静态和动态内容,那么这是一个非常标准的部署。
例如,如果所有动态内容都以
/api
为前缀(或者,所有静态内容都以/static/
为前缀),那么您需要的是:1.在指向ELB/EC2的云锋中创建原点
1.在cloudfront中创建一个指向S3 bucket的静态原点。
1.在cloudfront中为
/api/
路径创建一个行为(确保它不缓存任何内容并传递所有头和cookie),它应该指向ELB/EC2源。1.为指向s3源的根路径(默认)创建静态行为,此行为可以在适用的地方缓存静态内容。
有关此方法的详细信息,请参阅本指南:https://aws.amazon.com/blogs/networking-and-content-delivery/dynamic-whole-site-delivery-with-amazon-cloudfront/