
我有一個以 S3 作為來源配置的 CloudFront 發行版。
我已經按照亞馬遜指南啟用了「自動壓縮物件」。等待分發狀態顯示“線上”,然後使所有文件失效。
我的響應標頭是:
Age:5
Connection:keep-alive
Content-Length:232359
Content-Type:application/javascript
Date:Sat, 03 Mar 2018 15:39:10 GMT
Last-Modified:Sat, 03 Mar 2018 15:37:32 GMT
Server:AmazonS3
Vary:Accept-Encoding
Via:1.1 4dbdc57755819d1a0ec1defc2630d677.cloudfront.net (CloudFront)
X-Amz-Cf-Id:6eHPWzOXv2J6kIvzuieoI9chtPBBvEvJFH9fb3yMwHvvcMZ4xsigCA==
X-Cache:Hit from cloudfront
請求標頭:
Accept:*/*
Accept-Encoding:gzip, deflate, br
Accept-Language:en-GB,en;q=0.9,en-US;q=0.8,pl;q=0.7,zh;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Host:d2h5tcpn9r8alm.cloudfront.net
Pragma:no-cache
Referer:https://noru.co.uk/
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36
它有一個“內容長度”和支援的“內容類型”,我缺少什麼?我這裡快要瘋了...
從那時起,我透過上述步驟創建了一個新的 s3 儲存桶和新的分發,但選擇了不同的儲存桶位置(以防這會以某種方式產生影響),以下是分發的常規設定:
Delivery Method Web
Cookie Logging Off
Distribution Status Deployed
Comment -
Price Class Use All Edge Locations (Best Performance)
AWS WAF Web ACL -
State Enabled
Alternate Domain Names (CNAMEs) -
SSL Certificate Default CloudFront Certificate (*.cloudfront.net)
Domain Name d189ud9v76clu1.cloudfront.net
Custom SSL Client Support -
Security Policy TLSv1
Supported HTTP Versions HTTP/2, HTTP/1.1, HTTP/1.0
IPv6 Enabled
Default Root Object -
Last Modified 2018-03-03 15:46 UTC
Log Bucket
以及行為: 分佈行為
我仍然無法讓 gzip 在這裡工作,這是新檔案: http://d189ud9v76clu1.cloudfront.net/app.min.js
答案1
您的請求是否包含必要的Accept-Encoding: gzip
標頭?
您的標頭看起來像curl 輸出,預設不會發送該標頭。
您可以透過以下方式使用curl測試gzip編碼:curl -H "Accept-Encoding: gzip" https://example.com/asset.js"
答案2
我會看看我是否可以總結發生在我身上的事情,也許這對某人有幫助。
進行了 S3 的初始設定。設定 CORS 但未新增 Content-Length。完成了 CloudFront 的初始設定。沒有勾選壓縮。
一切都部署好了。
在網域上執行 GTMetrix 測試並獲得 F(表示 gzip)。
返回並谷歌如何使其發揮作用。意識到我需要 Content-Length 標頭<AllowedHeader>Content-Length</AllowedHeader>
並意識到我需要返回 CloudFront 並檢查分發上的壓縮。
但是...您還需要使快取無效。基本上所有資產都回來了 304(未修改)。所以你不會得到你的壓縮資產。
分發、編輯、失效、創建*
並運行。
希望能幫助你。
答案3
之後我付費請AWS服務台幫我解決這個問題,這是他們的回覆:
我確實理解,因為無法使用開發人員工具查看對配置所做的更改可能會令人沮喪。
從線上文件中,我確實確認這可能有點令人困惑,我將提出反饋請求以對文件進行一些更改,在您的情況下,如果您查看 Chrome 瀏覽器網絡的底部,則更多的是性能更改開發人員工具下的選項,您將看到gzip 壓縮對頁面效能的影響。
若要透過瀏覽器查看配置,另一個選項與您在「curl」命令輸出中獲得的選項相同,即透過從任何瀏覽器查看開發人員工具中的回應標頭。
如果您前往“開發人員工具”->“選擇網頁”,則可以找到此資訊: * 當您看到指向資源的所有連結時,請點擊頂部連結網域名稱“noru.co.uk”。 * 這將打開您的標頭,它將提供與curl命令相同的輸出範例:
接受範圍:位元組
Alt-Svc: quic=":443";馬=2592000; v=“35,37,38,39”
快取控制:無儲存、無快取、必須重新驗證、後檢查=0、預檢查=0
內容編碼:gzip
內容長度:3152
內容類型:text/html;字符集=utf-8
日期:2018 年 3 月 20 日星期二 06:37:04 GMT
電子標籤:“7073226-1521527798;gz”
到期時間: 1981 年 11 月 19 日星期四 08:52:00 GMT
編譯指示:無緩存
伺服器:LiteSpeed
變化:接受編碼
X-Firefox-Spdy:h2
字符集:utf-8
x-litespeed-cache:命中,私有
x-powered-by: Craft CMS
這將為您提供該網域網頁的大部分設定資訊。
我希望這對您有所幫助,如果您有任何其他問題,請隨時與我們聯繫,我很樂意為您提供進一步的幫助。