将 APEX 域重定向到具有 Route53、带缓存的 CloudFront 和 ELB 的子域



我计划将example.com重定向到test.example.com。(这不应该是 A 记录 - 要求是域的更改,因此它在测试域中的事实很明显。

但是,我发现 APEX 域不能是 CNAME 记录(链接),因此我认为在 CloudFront 或更高版本(nginx、expressjs)上进行重定向是合适的,因此我将example.combeta.example.com的两个 A 记录设置为 CF DNS 名称。

但是,对于缓存的 CF,我认为可能存在与重定向相关的问题。

例如,当用户尝试连接到example.com作为第一次命中(CF 缓存未命中)时,该请求将传递到快速,并将以 302 重定向到test.example.com进行响应。

但是,当另一个用户尝试连接到test.example.com时,该请求将作为/的请求发送到CloudFront,因此CF将返回302重定向,而不是将其传递给express,这没有任何意义。

如何解决此问题?我是否必须放弃/资源的缓存,或者是否有其他解决方法?

通过将Behavior>Edit>Cache Based on Selected Request Headers更改为whitelist,然后将Host标题添加到白名单来解决。

最新更新