2014-03-05 81 views
2

我已經通過Stackoverflow上的其他帖子瞭解了這個主題的很多建議,但是我仍然沒有成功實現它。有人可以通過S3來源通過Cloudfront從Cloudfront提供gzip文件嗎?

網站原點位於S3,它通過Cloudfront提供服務。通過其他帖子和亞馬遜文檔,我看到的建議,如:

1)Gzip必要的文件,從文件名稱中刪除.gz,但在上傳時,仍然將元設置爲gzip。這不適合我。 Safari只是下載gzip文件而不是用作網頁。

2)亞馬遜文檔建議上傳文件的gzip壓縮版和非壓縮版,但它沒有提及如何工作。例如,你是否鏈接到網站html中的style.css和style.css.gz?如果是這樣,是不是擊敗gzipping的目的加快網站,因爲它似乎有兩個要求,而不是一個?

此外,當您設置文檔Cloudfront是爲了檢索,例如, index.html,如果你有一個gzip壓縮文件和非壓縮文件,你把它設置爲要檢索的文件?當我將文檔設置爲index.html.gz時,瀏覽器再次下載文件。

我在70-80%的利潤率中獲得了速度等級,這可能會更糟糕,但它也可能會更好。我不是初學者,但是我距離這家公司的專家有100萬英里的距離,所以我希望我可以一步一步地走過這裏。肯定有一些我不太對勁。

在此先感謝您的幫助。

回答

5

的過程應該是這樣的:

  • gzip的本地文件(然後它應該被稱爲index.html.gz
  • 刪除.gz擴展(現在文件名爲index.html,但內容gzip壓縮)
  • 上傳文件到S3
  • 在S3管理控制檯中的文件的元數據標籤中根據它是什麼文件設置正確的Content-Type並且
  • 設置Content-Encodinggzip

當鏈接到你的HTML標記gzip壓縮的樣式表只需指定名稱沒有.gz擴展。

一個不錯的網站,以測試配置的工作原理是http://gzipwtf.com/

而且不要忘了無效CloudFront的緩存,如果你想它與文件被緩存。

編輯:

到與這個東西的手都是我建議你在某種構建過程的自動上傳和設置頭的過程中,時間反覆折騰。 s3_website是一款不錯的Ruby寶石,但也有其他命令行工具或Grunt插件可供使用。

+1

非常好。我不能要求更好的描述。謝謝mxlje。非常感激。 – user1483650

+0

很高興你知道了,很高興幫助。 – mxlje

相關問題