2017-03-09 52 views
0

我使用AWS的Cloudfront服務我的圖片。 Origin圖像標題包含Cache-Control設置,但這些標題不會被轉移到AWS。我檢查了AWS文件,我認爲我的Cloudfront設置正確:產地緩存控制不工作的AWS的Cloudfront

設置對象緩存:使用原產緩存頭

我創建了一個頁面,在這裏你可以看到相同的圖像,加載直接來源於它,並由Cloudfront加載。正如你所看到的,第二圖像不包括Cache-Control頭設置:

https://www.fanaticguitars.com/cache-control-test.php

什麼建議嗎?

謝謝。

回答

1

的配置錯誤是你的服務器上,而不是CloudFront的。

如果我連接到您的www服務器,但隨後騙它,告訴它我要求img而不是www通過設置HTTP頭Host:(這是當它獲取內容是什麼CloudFront的是做,如果你有Host:頭中的緩存行爲列入白名單),您的服務器沒有在這種情況下即使它(返回Cache-Control頭兩次!)當請求針對www

這是你的服務器的連接,而不是CloudFront的:

$ curl -v https://www.fanaticguitars.com/v2/avatar.png -H 'Host: img.fanaticguitars.com' > /dev/null 

> GET /v2/avatar.png HTTP/1.1 
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3 
> Accept: */* 
> Host: img.fanaticguitars.com 
> 
< HTTP/1.1 200 OK 
< Server: nginx 
< Date: Thu, 09 Mar 2017 16:49:31 GMT 
< Content-Type: image/png 
< Content-Length: 9915 
< Last-Modified: Wed, 01 Mar 2017 21:46:59 GMT 
< Connection: close 
< Accept-Ranges: bytes 
< 
* Closing connection #0