2017-05-18 66 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