總結
本文說明如何排除使用 Azure Front Door 時可能遇到的常見問題。
備註
你可以請求 Azure Front Door 回傳額外的除錯 HTTP 回應標頭。 如需詳細資訊,請參閱選擇性回應標頭 (機器翻譯)。
幾秒後收到來自 Azure Front Door 的 504 回應
癥狀
- 您的請求在不經過 Azure Front Door 傳送至後端時也能成功處理。 透過 Azure Front Door 會收到 504 個錯誤回應。
- Azure Front Door 的故障通常會在大約 30 秒後出現。
- 504 錯誤顯示為「ErrorInfo: OriginTimeout」。
原因
這個問題的原因是兩種原因之一:
- 您的來源伺服器響應的時間超過了從 Azure Front Door 接收請求所設定的逾時配置。 預設逾時值為 30 秒。
- 回覆 Azure Front Door 請求所需的時間比逾時值還長。
疑難排解步驟
將請求直接送出到你的來源伺服器,不用經過 Azure Front Door。 查看你的來源伺服器通常需要多久時間回應。
透過 Azure Front Door 發送請求,看看有沒有收到任何 504 回覆。 如果沒有,問題可能不在逾時問題。 建立支援要求,以進一步對問題進行疑難解答。
如果透過 Azure Front Door 的請求出現 504 錯誤回應碼,請設定 Azure Front Door 的 Origin 回應逾時。 您最多可將預設逾時增加到 4 分鐘 (240 秒)。 要設定設定,請前往 Front Door 設定檔的總覽頁面。 選取 [來源回應逾時],然後輸入介於 16 到 240 秒之間的值。
備註
設定原始回應逾時的功能僅在 Azure Front Door 標準版/高級版中提供。
僅限 HTTPS 的 Azure Front Door 502 回應
癥狀
- Azure Front Door 僅回傳 502 個回應,適用於啟用 HTTPS 的端點。
- 定期發送到後端的請求,無需經過 Azure Front Door 也能成功。 透過 Azure Front Door 會收到 502 錯誤回應。
原因
此問題的原因可能為下列三件事之一:
- 原始主機名稱是一個 IP 位址。
- 原始伺服器回傳的憑證與 Azure Front Door 後端的完整資格網域名稱(FQDN)不符。
- 原始伺服器回傳的憑證是沒有完整鏈條的。
疑難排解步驟
後端是 IP 位址。
你必須關閉
EnforceCertificateNameCheck。Azure Front Door 有一個叫做
EnforceCertificateNameCheck的交換器。 預設會啟用此設定。 啟用後,Azure Front Door 會檢查後端主機名稱 FQDN 是否與後端伺服器憑證的憑證名稱或主體替代名稱擴充中的某項相符。如何從 Azure 入口網站停用
EnforceCertificateNameCheck:在入口網站裡,使用切換按鈕在Azure Front Door(經典)Design面板中開啟或關閉此設定。
對於 Azure Front Door Standard 和 Premium 方案,你可以在 Origin 設定中找到這個設定,當你將 Origin 加入 Origin 群組或設定路由時。
後端伺服器回傳的憑證與 Azure Front Door 後端的 FQDN 不符。 若要解決此問題,您有兩個選擇:
- 傳回的憑證必須符合 FQDN。
- 停用
EnforceCertificateNameCheck。
原始伺服器回傳一份沒有完整鏈條的憑證:
來源伺服器必須回傳具有完整憑證鏈的憑證,且至少包含葉憑證和中繼憑證。 如果 Origin 伺服器只回傳 Leaf 憑證,Azure Front Door 會回傳 502 錯誤。
在瀏覽器中直接從用戶端連接到原始伺服器,測試原始伺服器憑證時不會顯示錯誤。 瀏覽器會重建信任憑證鏈,使其成為它認為應該的樣子,而不是顯示原始伺服器回傳的精確內容。
使用 OPENSSL 來驗證被回傳的憑證鏈。 若要執行此檢查,請使用
-connect連線到來源主機名稱。 使用-servername傳送來源主機名稱。 如果原始主機名稱是 IP,請使用-noservername。 指令會回傳整條憑證鏈,必須與來源的 FQDN 相符,並包含完整的憑證信任鏈:
起源主機名稱為 FQDN:
openssl s_client -connect backendvm.contoso.com:443 -servername backendvm.contoso.com -showcerts來源主機名稱是一個 IP 位址:
openssl s_client -connect 0.0.0.0:443 -noservername -showcerts
發送到自訂網域的請求會回傳 404 狀態碼
癥狀
- 你建立了一個 Azure Front Door 實例。 對網域或前端主機的請求會回傳 HTTP 404 狀態碼。
- 您已建立自訂網域到您所設定前端主機的 DNS (網域名稱伺服器) 對應。 向自訂網域主機名稱發送請求時,會回傳一個 HTTP 404 狀態碼。 它似乎沒有路由到你設定的來源。
原因
問題出在你沒有為你新增的前端主機的自訂網域設定路由規則。 你需要明確為該前端主機加入路由規則。 即使你已經在 Azure Front Door 子網域(.azurefd.net)下為前端主機設定了路由規則,你也需要建立這個規則。
疑難排解步驟
為自訂網域新增路由規則,將流量導向選取的來源群組。
Azure Front Door 不會將 HTTP 重定向到 HTTPS
癥狀
Azure Front Door 對 HTTP 和 HTTPS 都有路由規則,但用 HTTP 存取網域時,HTTP 會保留 HTTP 作為協定。
原因
如果你沒有正確設定 Azure Front Door 的路由規則,可能會發生這種情況。 您目前的設定並非專屬,而且可能有衝突的規則。
疑難排解步驟
請確保路由中選擇 了「將所有流量重新導向至 HTTPS 」選項。
我的來源設定為 IP 位址
癥狀
你把來源設定成 IP 位址。 來源伺服器運作正常,但會拒絕來自 Azure Front Door 的請求。
原因
Azure Front Door 在 SSL 握手時會使用原始主機名稱作為 SNI 標頭。 如果你把來源地址設定為 IP 位址並停用憑證名稱檢查,來源憑證邏輯可能會拒絕那些沒有有效 SNI 與憑證相符的請求。
疑難排解步驟
將來源地址從 IP 位址改為完全限定網域名稱(FQDN),且擁有與來源憑證相符的有效憑證。
429 個回應來自 Azure Front Door
癥狀
開始以回應 429 顯示錯誤的要求百分比:太多要求。
原因
Azure Front Door 有預設的平台速率限制。 如果流量超過上限,Front Door 會開始限制流量,並回傳 429 個回應。
疑難排解步驟
如果你的合法流量開始出現 429 回應,且需要更高的配額上限,請建立Azure 支援要求。
相關內容
- 學習如何設定 Azure Front Door 的 Origin。
- 了解使用 Azure Front Door 進行端對端 TLS 加密。
- 了解 Azure Front Door 如何支援 URL 重定向。
- 學習如何在 Azure Front Door 新增自訂網域。