使用nginx从cloudfront CDN提供静态文件

使用nginx从cloudfront CDN提供静态文件,nginx,url-rewriting,url-redirection,cdn,amazon-cloudfront,Nginx,Url Rewriting,Url Redirection,Cdn,Amazon Cloudfront,我已经为我的网站设置了一个带有amazon cloudfront的CDN。现在,我的cdn上的文件与网站中文件夹的位置相同 我尝试使用插件为我的网站设置cdn,但它没有按预期工作 因此,现在我正在尝试设置nginx,以便从我的CDN(一个外部URL)为文件提供服务器。我看过好几篇关于这个的帖子,但是没有一篇是为我写的 这就是我到目前为止所做的 location ~* \.(gif|png|jpg|svg|woff|js|css)$ { rewrite ^ https:

我已经为我的网站设置了一个带有amazon cloudfront的CDN。现在,我的cdn上的文件与网站中文件夹的位置相同

我尝试使用插件为我的网站设置cdn,但它没有按预期工作

因此,现在我正在尝试设置nginx,以便从我的CDN(一个外部URL)为文件提供服务器。我看过好几篇关于这个的帖子,但是没有一篇是为我写的

这就是我到目前为止所做的

location ~* \.(gif|png|jpg|svg|woff|js|css)$ {

             rewrite ^ https://mycdnurl.net$request_uri permanent;
             proxy_pass https://mycdnurl.net;

       }
两个都不起作用

帮助

应该成为

文件的路径可以是任何东西,并且不是常数


非常感谢您的帮助。提前谢谢您。第二个模块我不懂。第一个块包含两个相互冲突的指令。如果要重定向到CDN,应使用:

location ~* \.(gif|png|jpg|svg|woff|js|css)$ {
    return 301 https://mycdnurl.net$request_uri;
}
这只是你的
rewrite^的简化版本https://mycdnurl.net$request_uri永久语句。更多信息,请参阅

如果这不起作用,您需要更新您的问题,并提供问题的更多详细信息


感谢Michael指出,只有当CloudFront不使用此服务器和同一URI获取其权威副本时,上述方案才会起作用。

此服务器正在处理对
mycdnurl.net
的请求,或者
mycdnurl.net
正在重定向回此服务器。您可以查看HTTP头并确定循环的原因。是的,来自cdn的请求被重定向回网站url@RichardSmith我要说的是,在没有(我怀疑)一条关键信息的情况下,你在回答这个问题上做得非常好。。。CloudFront不承载内容。OP说这些文件“在”CDN上,这是不可能的——CloudFront是一个缓存、直通式CDN。如果是针对尚未缓存的文件,它会将每个请求代理到某个权威的位置,以便下次缓存内容。在另一个服务或系统(如S3)中,或者在应用服务器本身上,必须有一个权威的内容源,在这种情况下,只需重定向直接请求……我们现在可以说,该服务器正在尝试将请求代理到CloudFront,而CloudFront已经尝试将请求代理回此处。