反向代理至 Cloudfront CDN

反向代理至 Cloudfront CDN

我们希望将所有请求转发到domain.com/fooCloudfront 前端的 S3 Bucket。我们的想法是,当内容从 S3/Cloudfront 加载时,使用我们的域。我已将 Apache 设置为将代理请求反向为/foo

<Location /foo>
    RequestHeader set X-Forwarded-Proto "https"

    ProxyPassReverseCookiePath / /foo

    ProxyPass http://bar.cloudfront.net/
    ProxyPassReverse http://bar.cloudfront.net/
</Location>

然而,当我点击时,domain.com/foo我得到了403 Forbidden来自 Cloudfront 的一个。

我尝试添加标题RequestHeader set Host "bar.cloudfront.net",页面加载并且我看到s3存储桶中的内容,但是域显然是 CDN 域。

更新:

我将 Apache 配置中的 cloudfront URL 替换为 s3 bucket 的公共 URL,它工作正常,同时保留了主机名。所以我相信这证实了这是 Cloudfront 的问题。

我在 CloudFront 上将我们的域名添加为 CNAME。然后使用 将 设置RequestHeader set Host为我们的域名/foo。这样可以保留主机名,但会导致400CloudFront 出错。

答案1

Cloudfront 需要了解它将要接收的所有主机标头。您可以在 Cloudfront 中添加 domain.com 作为 CNAME 条目。这不会导致流量进入 cloudfront,但它会将该主机标头标识为您的特定配置相关。

相关内容