2017-05-18 65 views
0

我为我的网站设置了一个包含amazon cloudfront的CDN。我现在在我的cdn上有与我的网站中文件夹相同位置的文件。用nginx从cloudfront 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

我不明白第二个块。第一个块包含两个冲突的指令。如果你想重定向到您的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来获取其权威副本,上述方案才会起作用。

+0

这实际上是给出了“太多重定向”错误 – user168983

+0

该服务器正在处理对“mycdnurl.net”的请求,或者“mycdnurl.net”正在重定向回该服务器。您可以查看HTTP标头并确定循环的原因。 –

+0

是来自cdn的请求正在重定向回到网站url – user168983