反向代理到Cloudfront CDN

我们希望将所有请求转发到domain.com/foo到Cloudfront前面的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我得到了来自Cloudfront的403 Forbidden

我试着添加头RequestHeader set Host "bar.cloudfront.net" ,页面加载,我看到在s3桶中的内容,但是,然后该域显然是CDN域。

更新:

我将Apacheconfiguration中的云端URLreplace为s3存储区的公用URL,并在保留主机名的情况下工作。 所以我相信这证实了Cloudfront的一个问题。

我在CloudFront上将我们的域名添加为CNAME。 然后使用/fooRequestHeader set Host为我们的域名。 这会保留主机名称,但会导致CloudFront发生400错误。

Cloudfront需要知道它将要接收的所有主机头。 您可以将domain.com作为Cloudfront中的CNAME条目添加。 这不会导致stream量到达云端,但它确实将主机头标识为与您的特定configuration相关。