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

时间:2017-05-18 10:48:30

标签: nginx url-rewriting url-redirection cdn amazon-cloudfront

我为我的网站设置了亚马逊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;

       }

两者都不起作用。

简单地帮助

https://mywesite.com/images/abcd.jpg应该成为https://mycdnurl.net/images/abcd.jpg

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

非常感谢任何帮助。谢谢提前

1 个答案:

答案 0 :(得分:1)

我不明白第二个街区。第一个块包含两个冲突的指令。如果要重定向到CDN,则应使用:

location ~* \.(gif|png|jpg|svg|woff|js|css)$ {
    return 301 https://mycdnurl.net$request_uri;
}

这只是rewrite ^ https://mycdnurl.net$request_uri permanent;声明的简化版本。有关详情,请参阅this document

如果这不起作用,您需要更新问题以了解问题的详细信息。

感谢Michael指出上述方案只有在CloudFront不使用此服务器且使用相同的URI获取其权威副本时才有效。