監視 Azure Front Door 中的計量和記錄
Azure Front Door 提供數種功能,協助您監視應用程式、追蹤要求,以及針對 Front Door 設定進行偵錯。
記錄和計量會由 Azure 監視器儲存和管理。
報告可讓您深入了解流量如何流經 Azure Front Door、Web 應用程式防火牆 (WAF),然後進入您的應用程式。
計量
Azure Front Door 會測量其計量,並以 60 秒間隔傳送計量。 計量最多可能需要 3 分鐘的時間才能由 Azure 監視器處理完成,而且在處理完成之前可能不會顯示計量。 計量也可以顯示在圖表或方格中,且可透過 Azure 入口網站、Azure PowerShell、Azure CLI 和 Azure 監視器 API 來存取。 如需詳細資訊,請參閱 Azure 監視器計量。
下表所列的計量會記錄下來並免費儲存一段有限的時間。 若支付額外費用,您可以儲存較長的時間。
計量 | 描述 | 維度 | 建議彙總 |
---|---|---|---|
位元組命中率 | 從 Azure Front Door 快取提供的流量百分比,根據總輸出流量計算所得。 如果大部分流量轉送至原始伺服器,而不是從快取提供,則位元組命中率會很低。 位元組命中率 = (從邊緣的輸出 - 從原始伺服器的輸出)/從邊緣的輸出。 從位元組命中率計算中排除的案例:
|
端點 | 平均值、最小值 |
健康情況百分比 | 從 Azure Front Door 傳送到原始伺服器的成功健全狀態探查百分比。 | 來源、來源群組 | Avg |
來源延遲 | Azure Front Door 會計算從要求傳送至原始伺服器,到接收原始伺服器發出的最後一個回應位元組為止的時間。 WebSocket 已從原始延遲中排除。 | 端點、來源 | 平均值、最大值 |
來源要求計數 | 從 Azure Front Door 傳送至原始伺服器的要求數。 | 端點、原始伺服器、HTTP 狀態、HTTP 狀態群組 | 平均值、總和 |
4XX 的百分比 | 回應狀態碼為 4XX 的所有用戶端要求百分比。 | 端點、用戶端國家/地區、用戶端區域 | 平均值、最大值 |
5XX 的百分比 | 回應狀態碼為 5XX 的所有用戶端要求百分比。 | 端點、用戶端國家/地區、用戶端區域 | 平均值、最大值 |
要求計數 | 透過 Azure Front Door 提供的用戶端要求數目,包括完全從快取提供的要求。 | 端點、用戶端國家/地區、用戶端區域、HTTP 狀態、HTTP 狀態群組 | 平均值、總和 |
要求大小 | 從用戶端傳送到 Azure Front Door 的要求位元組數。 | 端點、用戶端國家/地區、用戶端區域、HTTP 狀態、HTTP 狀態群組 | 平均值、最大值 |
回應大小 | 從 Front Door 傳送到用戶端之回應的位元組數。 | 端點、用戶端國家/地區、用戶端區域、HTTP 狀態、HTTP 狀態群組 | 平均值、最大值 |
延遲總計 | Azure Front Door 會接收用戶端要求,並將最後一個回應位元組傳送給用戶端。 這是花費的總時間。 對於 WebSocket,此計量是指建立 WebSocket 連線所需的時間。 | 端點、用戶端國家/地區、用戶端區域、HTTP 狀態、HTTP 狀態群組 | 平均值、最大值 |
Web 應用程式防火牆要求計數 | Azure Front Door Web 應用程式防火牆處理的要求數。 | 動作、原則名稱、規則名稱 | 平均值、總和 |
注意
如果傳送到原始伺服器的要求逾時,則 HTTP 狀態維度的值是 0。
記錄
記錄會追蹤透過 Azure Front Door 傳送的所有要求。 系統需要幾分鐘的時間來處理和儲存記錄。
有多個 Front Door 記錄,您可以針對不同的用途使用:
- 存取記錄可用來識別緩慢的要求、判斷錯誤率,以及了解 Front Door 快取行為在您的解決方案中如何運作。
- Web 應用程式防火牆 (WAF) 記錄可用來偵測潛在的攻擊,以及誤判為真偵測,這些偵測可能表示 WAF 封鎖了合法要求。 如需 WAF 記錄的詳細資訊,請參閱 Azure Web 應用程式防火牆監視和記錄。
- 健全狀態探查記錄可用來識別狀況不良的原始伺服器,或未回應某些 Front Door 地理位置分散 PoP 所發出要求的原始伺服器。
- 活動記錄可讓您查看在 Azure 資源上執行的作業,例如 Azure Front Door 設定檔的設定變更。
存取記錄和 WAF 記錄包含追蹤參考,此參考也會在要求中利用 X-Azure-Ref
標頭傳播至原始伺服器和用戶端回應。 您可以使用追蹤參考來取得應用程式要求處理的端對端檢視。
預設不啟用存取記錄、健全狀態探查記錄和 WAF 記錄。 若要啟用和儲存診斷記錄,請參閱設定 Azure Front Door 記錄。 預設會收集活動記錄,您可在 Azure 入口網站中檢視它們。
存取記錄檔
每個要求的相關資訊都會記載到存取記錄中。 每個存取記錄項目都包含下表所列的資訊。
屬性 | 說明 |
---|---|
TrackingReference | 這是唯一的參考字串,可識別由 Azure Front Door 提供的要求。 追蹤參考會使用 X-Azure-Ref 標頭傳送至用戶端和原始伺服器。 在存取或 WAF 記錄中搜尋特定要求時,請使用追蹤參考。 |
Time | Azure Front Door 邊緣將所要求的內容傳遞至用戶端的日期和時間 (以 UTC 表示)。 對於 WebSocket 連線,時間代表連接關閉的時間。 |
HttpMethod | 要求所使用的 HTTP 方法:DELETE、GET、HEAD、OPTIONS、PATCH、POST 或 PUT。 |
HttpVersion | 用戶端在要求中指定的 HTTP 版本。 |
RequestUri | 所接收要求的 URI。 此欄位包含完整的配置、連接埠、網域、路徑和查詢字串。 |
HostName | 來自用戶端之要求中的主機名稱。 如果啟用自訂網域並具有萬用字元網域 (*.contoso.com ),HostName 記錄欄位的值為 subdomain-from-client-request.contoso.com 。 如果使用 Azure Front Door 網域 (contoso-123.z01.azurefd.net ),則 HostName 記錄欄位的值是 contoso-123.z01.azurefd.net 。 |
RequestBytes | HTTP 要求訊息的大小 (以位元組為單位),包括要求標頭和要求本文。 對於 WebSocket 連線,這是透過連線從用戶端傳送到伺服器的總位元組數。 |
ResponseBytes | HTTP 回應訊息的大小 (以位元組為單位)。 對於 WebSocket 連線,這是透過連線從伺服器傳送至用戶端的位元組總數。 |
UserAgent | 用戶端使用的使用者代理程式。 一般來說,使用者代理程式會識別瀏覽器類型。 |
ClientIp | 發出原始要求用戶端的 IP 位址。 如果要求中有 X-Forwarded-For 標頭,則會從標頭中取得用戶端 IP 位址。 |
SocketIp | Azure Front Door 邊緣的直接連線 IP 位址。 如果用戶端使用 HTTP Proxy 或負載平衡器傳送要求,則 SocketIp 的值就是 Proxy 或負載平衡器的 IP 位址。 |
TimeTaken | 從 Azure Front Door Edge 收到用戶端要求到最後一個回應位元組傳送至客戶端的持續時間,以秒為單位。 此計量會排除網路等待時間和 TCP 緩衝。 對於 WebSocket 連線,它代表從建立到關閉的連接持續時間。 |
RequestProtocol | 要求中用戶端所指定的通訊協定。 可能的值包括:HTTP、HTTPS。 若為 WebSocket,通訊協定為 WS、 WSS。 只有成功升級至 WebSocket 的要求才會有 WS/WSS。 |
SecurityProtocol | 要求所使用的 TLS/SSL 通訊協定版本,或如果要求沒有使用加密,則為 null。 可能的值包括:SSLv3、TLSv1、TLSv1.1、TLSv1.2。 |
SecurityCipher | 當要求通訊協定的值是 HTTPS 時,此欄位會指出用戶端和 Azure Front Door 交涉的 TLS/SSL 加密。 |
端點 | Azure Front Door 端點的網域名稱,例如 contoso-123.z01.azurefd.net 。 |
HttpStatusCode | 從 Azure Front Door 傳回的 HTTP 狀態碼。 如果傳送到原始伺服器的要求逾時,則 HttpStatusCode 欄位的值是 0。 如果用戶端關閉連線,則 HttpStatusCode 欄位的值是 499。 |
POP | 回應使用者要求的 Azure Front Door 邊緣存在點 (PoP)。 |
快取狀態 | Azure Front Door 快取如何處理要求。 可能的值包括:
|
MatchedRulesSetName | 已處理的規則引擎規則名稱。 |
RouteName | 要求符合的路由名稱。 |
ClientPort | 發出要求的用戶端的 IP 連接埠。 |
Referrer | 產生要求之網站的 URL。 |
TimetoFirstByte | 從 Azure Front Door 邊緣收到要求,到第一個位元組傳送到用戶端的時間長度 (以秒為單位),依照 Azure Front Door 的測量。 此屬性不會測量用戶端資料。 |
ErrorInfo | 如果在處理要求期間發生錯誤,此欄位會提供錯誤的詳細資訊。 可能的值包括:
|
OriginURL | 發出要求的原始伺服器完整 URL。 URL 包含配置、主機標頭、連接埠、路徑和查詢字串。 URL 重寫:如果要求 URL 遭到規則引擎重寫,則路徑會參考重寫的路徑。 邊緣 PoP 上的快取:如果要求是從 Azure Front Door 快取提供,則原始伺服器為 N/A。 大型要求:如果要求的內容很大,且有多個區塊化要求會回到原始伺服器,則此欄位會對應至原始伺服器的第一個要求。 如需詳細資訊,請參閱物件區塊化。 |
OriginIP | 提供要求的原始伺服器 IP 位址。 邊緣 PoP 上的快取:如果要求是從 Azure Front Door 快取提供,則原始伺服器為 N/A。 大型要求:如果要求的內容很大,且有多個區塊化要求會回到原始伺服器,則此欄位會對應至原始伺服器的第一個要求。 如需詳細資訊,請參閱物件區塊化。 |
OriginName | 原始伺服器的完整主機名稱 (DNS 名稱)。 邊緣 PoP 上的快取:如果要求是從 Azure Front Door 快取提供,則原始伺服器為 N/A。 大型要求:如果要求的內容很大,且有多個區塊化要求會回到原始伺服器,則此欄位會對應至原始伺服器的第一個要求。 如需詳細資訊,請參閱物件區塊化。 |
結果 | SSLMismatchedSNI 是狀態碼,表示要求成功,且發生 SNI 與主機標頭之間不相符警告。 此狀態碼表示網域前端,這是一種違反 Azure Front Door 服務條款的技術。 2024 年 1 月 22 日之後,含有 SSLMismatchedSNI 的要求將會遭到拒絕。 |
Sni | 此欄位指定在 TLS/SSL 交握期間傳送的伺服器名稱指示 (SNI)。 如果有 SSLMismatchedSNI 狀態碼,則可用來識別確切的 SNI 值。 此外,也可以與 requestUri 欄位中的主機值進行比較,以偵測並解決不相符問題。 |
健康狀態探查記錄
Azure Front Door 會記錄每個失敗的健全狀態探查要求。 這些記錄可協助您診斷原始伺服器的問題。 記錄提供的資訊可讓您用來調查失敗原因,然後讓原始伺服器回到健全狀態。
此記錄的適用案例包括:
- 您發現 Azure Front Door 流量已傳送至原始伺服器子集。 例如,您可能注意到四個原始伺服器中只有三個接收流量。 您想知道原始伺服器是否正在接收和回應健全狀態探查,以便知道原始伺服器是否良好。
- 您發現原始伺服器的健康情況百分比計量低於預期。 您想要知道哪些原始伺服器記錄為狀況不良,以及健全狀態探查失敗的原因。
每筆健全狀態探查記錄項目都有下列結構描述:
屬性 | 說明 |
---|---|
HealthProbeId | 用來識別健全狀態探查要求的唯一識別碼。 |
Time | 傳送健全狀態探查的日期和時間 (以 UTC 表示)。 |
HttpMethod | 健全狀態探查要求所使用的 HTTP 方法。 值包括 GET 和 HEAD,以健全狀態探查設定為基礎。 |
結果 | 健全狀態探查的狀態。 此值為成功或探查收到的錯誤描述。 |
HttpStatusCode | 從原始伺服器傳回的 HTTP 狀態碼。 |
ProbeURL | 探查要求傳送目的地的完整目標 URL。 URL 包含配置、主機標頭、路徑和查詢字串。 |
OriginName | 健全狀態探查傳送的目的地原始伺服器名稱。 如果原始伺服器設定為使用 FDQN,則此欄位可協助您尋找感興趣的原始伺服器。 |
POP | 傳送探查要求的邊緣 PoP。 |
來源 IP | 健康情況探查傳送原始伺服器的IP位址。 |
TotalLatency | 從 Azure Front Door Edge 將健康情況探查要求傳送至原始伺服器的時間,到原始伺服器傳送最後一個回應給 Azure Front Door 的時間。 |
ConnectionLatency | 設定 TCP 連線以傳送 HTTP 探查要求到原始伺服器所花費的時間。 |
DNSResolution 延遲 | DNS 解析所花費的時間。 此欄位只有在原始伺服器設定為 FDQN 而不是 IP 位址時,才會有值。 如果原始伺服器設定為使用IP位址,則值為 N/A。 |
下列範例 JSON 程式碼片段顯示失敗健全狀態探查要求的健全狀態探查記錄項目。
{
"records": [
{
"time": "2021-02-02T07:15:37.3640748Z",
"resourceId": "/SUBSCRIPTIONS/mySubscriptionID/RESOURCEGROUPS/myResourceGroup/PROVIDERS/MICROSOFT.CDN/PROFILES/MyProfile",
"category": "FrontDoorHealthProbeLog",
"operationName": "Microsoft.Cdn/Profiles/FrontDoorHealthProbeLog/Write",
"properties": {
"healthProbeId": "9642AEA07BA64675A0A7AD214ACF746E",
"POP": "MAA",
"httpVerb": "HEAD",
"result": "OriginError",
"httpStatusCode": "400",
"probeURL": "http://www.example.com:80/",
"originName": "www.example.com",
"originIP": "PublicI:Port",
"totalLatencyMilliseconds": "141",
"connectionLatencyMilliseconds": "68",
"DNSLatencyMicroseconds": "1814"
}
}
]
}
Web 應用程式防火牆記錄
如需 Front Door Web 應用程式防火牆 (WAF) 記錄的詳細資訊,請參閱 Azure Web 應用程式防火牆監視和記錄。
活動記錄
活動記錄提供 Azure Front Door 資源上的管理作業相關資訊。 記錄包含在 Azure Front Door 資源上執行的每個寫入作業相關詳細資訊,包括作業發生的時間、執行者和作業內容。
注意
活動記錄不包含讀取作業。 也未必包含您使用 Azure 入口網站或傳統管理 API 執行的所有作業。
如需詳細資訊,請參閱檢視您的活動記錄。
下一步
若要啟用和儲存診斷記錄,請參閱設定 Azure Front Door 記錄。
重要
Azure Front Door (傳統) 將於 2027 年 3 月 31 日遭到淘汰。 為了避免任何服務中斷,請務必在 2027 年 3 月之前,將 Azure Front Door (傳統) 設定檔移轉至 Azure Front Door 標準或進階層。 如需詳細資訊,請參閱 Azure Front Door (傳統版) 淘汰。
使用 Azure Front Door (傳統) 時,您可以透過下列方式監視資源:
- 計量。 Azure Front Door 目前有八個計量可檢視效能計數器。
- 記錄。 活動和診斷記錄能夠允許儲存效能、存取和其他資料,或從資源取用記錄以便進行監視。
計量
計量是某些 Azure 資源的功能,可讓您在入口網站中檢視效能計數器。 以下是可用的 Front Door 計量:
計量 | 計量顯示名稱 | 單位 | 維度 | 描述 |
---|---|---|---|---|
RequestCount | 要求計數 | 計數 | HttpStatus HttpStatusGroup ClientRegion ClientCountry |
由 Front Door 提供服務的用戶端要求數。 |
RequestSize | 要求大小 | Bytes | HttpStatus HttpStatusGroup ClientRegion ClientCountry |
從用戶端傳送到 Front Door 之要求的位元組數。 |
ResponseSize | 回應大小 | Bytes | HttpStatus HttpStatusGroup ClientRegion ClientCountry |
從 Front Door 傳送到用戶端之回應的位元組數。 |
TotalLatency | 延遲總計 | 毫秒 | HttpStatus HttpStatusGroup ClientRegion ClientCountry |
從 Front Door 接收到用戶端要求,直到從 AFD 傳送給用戶端的最後一個回應位元組為止的總時間。 |
BackendRequestCount | 後端要求計數 | 計數 | HttpStatus HttpStatusGroup Backend |
從 Front Door 傳送至後端的要求數。 |
BackendRequestLatency | 後端要求延遲 | 毫秒 | 後端 | 從 Front Door 傳送要求到後端一直到 Front Door 從後端接收最後回應位元組所經歷的時間。 |
BackendHealthPercentage | 後端健康情況百分比 | Percent | Backend BackendPool |
從 Front Door 到後端的健康情況探查成功百分比。 |
WebApplicationFirewallRequestCount | Web 應用程式防火牆要求計數 | 計數 | PolicyName RuleName Action |
Front Door 應用程式層安全性處理的用戶端要求數。 |
活動記錄
活動記錄提供在 Azure Front Door (傳統) 設定檔上完成的作業的相關資訊。 它們也會判斷針對 Azure Front Door (傳統) 設定檔完成的任何寫入作業 (放置、張貼或刪除) 的內容、對象和時間。
注意
如果向原始伺服器發出的要求逾時,HttpStatusCode 的值會設定為 0。
存取您的 Front Door 中的活動記錄,或 Azure 監視器中 Azure 資源的所有記錄。 檢視活動記錄:
選取您的 Front Door 執行個體。
選取 [活動記錄]。
選擇篩選範圍,然後選取 [套用]。
注意
活動記錄不包含您使用 Azure 入口網站或原始管理 API 執行的任何 GET 作業或作業。
診斷記錄
診斷記錄提供對於稽核和疑難排解來說很重要的作業與錯誤的豐富資訊。 診斷記錄與活動記錄不同。
活動記錄提供在 Azure 資源上所完成作業的深入解析。 診斷記錄提供您的資源所完成作業的深入解析。 如需詳細資訊,請參閱 Azure 監視器診斷記錄。
若要設定 Azure Front Door (傳統) 的診斷記錄:
選取您的 Azure Front Door (傳統) 設定檔。
選擇 [診斷設定]。
選取 [開啟診斷]。 將診斷記錄連同計量封存至儲存體帳戶、將其串流至事件中樞,或將其傳送至 Azure 監視器記錄。
Front Door 目前提供診斷記錄。 診斷記錄會提供個別的 API 要求,其中每個項目都具有下列結構描述:
屬性 | 說明 |
---|---|
BackendHostname | 如果將要求轉送至後端,則此欄位代表後端的主機名稱。 如果將要求重新導向或轉送至區域快取 (針對路由規則啟用快取時),此欄位會是空白。 |
CacheStatus | 針對快取案例,此欄位會定義 POP 的快取命中/遺漏 |
ClientIp | 發出要求之用戶端的 IP 位址。 如果要求中有 X-Forwarded-For 標頭,則會從相同要求中選擇該用戶端 IP。 |
ClientPort | 發出要求的用戶端的 IP 連接埠。 |
HttpMethod | 要求使用的 HTTP 方法。 |
HttpStatusCode | 從 Proxy 傳回的 HTTP 狀態碼。 如果向原始伺服器發出的要求逾時,HttpStatusCode 的值會設定為 0。 |
HttpStatusDetails | 對要求產生的狀態。 此字串值的意義可以在狀態參考資料表中找到。 |
HttpVersion | 要求或連線的類型。 |
POP | 要求登陸所在邊緣的簡短名稱。 |
RequestBytes | HTTP 要求訊息的大小 (以位元組為單位),包括要求標頭和要求本文。 |
RequestUri | 接收之要求的 URI。 |
ResponseBytes | 後端伺服器以回應形式傳回的位元組。 |
RoutingRuleName | 要求符合的路由規則名稱。 |
RulesEngineMatchNames | 要求符合的規則名稱。 |
SecurityProtocol | 要求所使用的 TLS/SSL 通訊協定版本,如果沒有加密則為 null。 |
SentToOriginShield (已取代) * 請參閱下一節有關取代的注意事項。 |
若為 true,則表示是從來源保護盾快取回答要求,而非邊緣 Pop。 原始保護盾是用來改善快取點擊率的父代快取。 |
isReceivedFromClient | 如果為 true,表示要求來自用戶端。 如果為 false,則要求在邊緣 (子 POP) 中遺漏,並從來源保護盾 (父 POP) 回應。 |
TimeTaken | 從要求的第一個位元組進入 Front Door 到傳出回應的最後一個位元組的時間長度 (以秒為單位)。 |
TrackingReference | 這項唯一的參考字串可識別 Front Door 所提供的要求,也會以 X-Azure Ref 標頭的形式傳送給用戶端, 這是在特定要求的存取記錄中搜尋詳細資料時的必要項目。 |
UserAgent | 用戶端使用的瀏覽器類型。 |
ErrorInfo | 此欄位包含特定類型的錯誤,以便進一步進行疑難排解。 可能的值包括: NoError:指出找不到錯誤。 CertificateError:一般 SSL 憑證錯誤。 CertificateNameCheckFailed:SSL 憑證中的主機名稱無效或不符合。 ClientDisconnected:因為用戶端網路連線而要求失敗。 UnspecifiedClientError:一般用戶端錯誤。 InvalidRequest:要求無效。 可能是因為格式錯誤的標頭、本文和 URL 而發生。 DNSFailure:DNS 失敗。 DNSNameNotResolved:無法解析伺服器名稱或位址。 OriginConnectionAborted:與來源的連線突然停止。 OriginConnectionError:一般來源連線錯誤。 OriginConnectionRefused:無法建立與來源的連線。 OriginError:一般來源錯誤。 OriginInvalidResponse:原始伺服器傳回無效或無法辨識的回應。 OriginTimeout:來源要求的逾時期間已過期。 ResponseHeaderTooBig:來源傳回的回應標頭太大。 RestrictedIP:要求因為受限制的 IP 而遭到封鎖。 SSLHandshakeError:無法建立與來源的連線,因為 SSL 交握失敗。 UnspecifiedError:發生不符合資料表中任何錯誤的錯誤。 SSLMismatchedSNI:要求無效,因為 HTTP 訊息標頭不符合 SSL/TLS 連線設定期間 TLS SNI 擴充功能中顯示的值。 |
結果 | SSLMismatchedSNI 是狀態碼,表示要求成功,且發生 SNI 與主機標頭之間不相符警告。 此狀態碼表示網域前端,這是一種違反 Azure Front Door 服務條款的技術。 2024 年 1 月 22 日之後,含有 SSLMismatchedSNI 的要求將會遭到拒絕。 |
Sni | 此欄位指定在 TLS/SSL 交握期間傳送的伺服器名稱指示 (SNI)。 如果有 SSLMismatchedSNI 狀態碼,則可用來識別確切的 SNI 值。 此外,也可以與 requestUri 欄位中的主機值進行比較,以偵測並解決不相符問題。 |
傳送至來源保護盾取代
原始記錄屬性 isSentToOriginShield 已淘汰,並由新的欄位 isReceivedFromClient 取代。 如果您已在使用被取代的欄位,請使用新的欄位。
原始記錄包含從 CDN 邊緣 (子 POP) 和來源保護盾產生的記錄。 來源保護盾是指策略性位於全球各地的父節點。 這些節點會與來源伺服器通訊,並減少來源上的流量負載。
針對進入原始伺服器保護盾的每個要求,都有兩個記錄項目:
- 一個用於邊緣節點
- 一個用於來源保護盾。
若要區分來自邊緣節點與來源保護盾的輸出或回應,您可以使用 isReceivedFromClient 欄位來取得正確的資料。
如果值為 false,則表示該要求是來自來源保護盾對邊緣節點回應。 此方法可有效比較原始記錄與計費資料。 來自來源保護盾對邊緣節點的輸出不會衍生費用。 從邊緣節點對用戶端的輸出會衍生費用。
Kusto 查詢範例,以排除 Log Analytics 中來源保護盾上產生的記錄。
AzureDiagnostics | where Category == "FrontdoorAccessLog" and isReceivedFromClient_b == true
注意
針對各種路由設定和流量行為,某些欄位,如 backendHostname、cacheStatus、isReceivedFromClient 和 POP 欄位可能會回應不同的值。 下表說明這些欄位在各種情節中的不同值:
案例 | 記錄項目的計數 | POP | BackendHostname | isReceivedFromClient | CacheStatus |
---|---|---|---|---|---|
未啟用快取的路由規則 | 1 | 邊緣 POP 代碼 | 已轉送要求的後端 | True | CONFIG_NOCACHE |
已啟用快取的路由規則。 邊緣 POP 的快取命中 | 1 | 邊緣 POP 代碼 | 空的 | True | HIT |
已啟用快取的路由規則。 邊緣 POP 的快取遺漏,但父快取 POP 的快取命中除外 | 2 | 1.邊緣 POP 代碼 2. 父快取 POP 代碼 |
1.父快取 POP 主機名稱 2. 空的 |
1.True 2. False |
1.MISS 2. HIT |
已啟用快取的路由規則。 邊緣 POP 的快取遺漏,但父快取 POP 的 PARTIAL 快取命中除外 | 2 | 1.邊緣 POP 代碼 2. 父快取 POP 代碼 |
1.父快取 POP 主機名稱 2. 可協助填入快取的後端 |
1.True 2. False |
1.MISS 2. PARTIAL_HIT |
已啟用快取的路由規則。 邊緣 POP 的快取 PARTIAL_HIT,但父快取 POP 的快取命中除外 | 2 | 1.邊緣 POP 代碼 2. 父快取 POP 代碼 |
1.邊緣 POP 代碼 2. 父快取 POP 代碼 |
1.True 2. False |
1.PARTIAL_HIT 2. HIT |
已啟用快取的路由規則。 邊緣和父快取 POP 兩者的快取遺漏 | 2 | 1.邊緣 POP 代碼 2. 父快取 POP 代碼 |
1.邊緣 POP 代碼 2. 父快取 POP 代碼 |
1.True 2. False |
1.MISS 2. MISS |
處理要求時發生錯誤 | N/A |
注意
針對快取案例,當要求的某些位元組從 Azure Front Door 邊緣或來源保護盾快取提供,而某些位元組從大型物件的來源提供時,快取狀態的值將會是 partial_hit。
Azure Front Door 會使用稱為物件區塊化的技術。 要求大型檔案時,Azure Front Door 會從來源擷取較小的檔案片段。 在 Azure Front Door POP 伺服器收到檔案的完整或位元組範圍要求後,Azure Front Door 邊緣伺服器會以 8 MB 的區塊向來源要求檔案。
區塊抵達 Azure Front Door 邊緣之後,會被快取並立即提供給使用者。 然後 Azure Front Door 會以平行方式預先擷取下一個區塊。 此預先擷取可確保內容領先使用者一個區塊,以降低延遲。 此程序一直持續到整個檔案下載完成 (如有要求)、取得所有位元組範圍 (如有要求),或用戶端關閉連線。 如需位元組範圍要求的詳細資訊,請參閱 RFC 7233。 Azure Front Door 會在收到區塊時加以快取。 不必快取 Front Door 快取上的整個檔案。 確保 Azure Front Door 快取會提供檔案或位元組範圍的要求。 如果不是在 Azure Front Door 快取所有的區塊,就會使用預先擷取向來源要求區塊。 此最佳化依賴原始伺服器的功能,支援位元組範圍的要求。 如果原始伺服器不支援位元組範圍要求,此最佳化就不會生效。