使用 Power Pages 網站設定 Azure Front Door

身為網站製作者,您可以將 Azure Front Door 與 Power Pages 入口網站搭配使用,以便利用其邊緣快取和 Web Application Firewall (WAF) 功能。 在本文中,您將了解如何使用 Power Pages 來設定 Azure Front Door

注意

依照下列步驟,使用 Power Pages 來設定 Azure Front Door:

  1. 設定網站使用者要使用的 Azure Front Door 端點和自訂網域名稱
  2. 將 Power Pages 網站設定為原點
  3. 設定路由規則為快取記憶體靜態要求
  4. 設定 WAF 規則來分析接收的要求
  5. 將網站設定為只接受來自 Azure Front Door 的流量

設定 Azure Front Door 端點和自訂網域名稱

在本節中,您將瞭解如何設定 Azure Front Door 服務,並為此安裝程式啟用自訂網域名稱。

先決條件

  • 具有建立新服務的權限的 Azure 訂閱。

  • 自訂網域名稱,並可存取自訂網域名稱安裝程式的 DNS 提供者。

  • 將用於自訂網域名稱的 SSL 憑證。 憑證必須符合 Power Pages 的最低需求

  • Power Pages 的擁有者存取權,用於設定自訂網站名稱。

設定 Azure Front Door 端點

注意

如果您已經建立了 Azure Front Door 資源,請前往下列程序的步驟 3。

  1. 登入 Azure 入口網站,並建立新的 Azure Front Door (Standard 或 Premium) 資源。 其他資訊:快速入門:建立 Azure Front Door Standard/Premium 設定檔 - Azure 入口網站

    建立 Azure Front Door 資源。

  2. 選擇快速建立

    提示

    您可以稍後變更大多數的 Azure Front Door 設定。

    建立 Azure Front Door 和設定。

  3. 選取或填入下列詳細資料以設定資源。

    選項 描述
    專案詳細資料 與其他任何 Azure 資源類似的資源組織設定。
    訂閱 選取將在其中建立 Azure Front Door 資源的訂閱。
    資源群組 選取 Azure Front Door 的資源群組。 您也可以建立新的資源群組。
    資源群組位置 資源群組的位置。
    設定檔詳細資料 Azure Front Door 的設定。
    名字 Azure Front Door 資源的名稱。
    階層 選取 Azure Front Door 資源的層級。 在此文章中,我們選取了 Premium 層級,允許存取 Microsoft 管理的規則集和機器人防護規則集進行 WAF。
    端點設定 設定 Azure Front Door 端點。
    端點名稱 輸入您的 Azure Front Door 要求名稱。 這個名稱是為使用者提供通訊服務的實際 URL。 稍後,我們會設定指向此 URL 的自訂網域名稱。
    來源類型 選取自訂
    原始主機名稱 Power Pages 網站的主機名稱。
    格式:yoursitename.powerappsportals.comyoursitename.microsoftcrmportals.com,開頭不是 https://
    例如,contoso.powerappsportals.com
    私人連結 不要啟用私人連結服務。
    快取功能 啟用快取功能。 快取會使用靜態內容的邊緣快取功能。
    設定路由規則以符合快取靜態要求,將於本文後面進一步討論。
    查詢字串快取行為 選取使用查詢字串。 此選項將確保當頁面包含可滿足查詢字串的動態內容時,會考慮查詢字串。
    壓縮 啟用壓縮。
    WAF 原則 建立新的 WAF 原則或使用現有原則。
    如需 WAF 原則的資訊,請前往本文後半部的「設定 WAF 規則以分析接收的要求」,以及教學課程:使用 Azure Portal 建立 Azure Front Door 上的 Web 應用程式防火牆原則
  4. 選取檢閱 + 建立,然後等待安裝程式完成。 這通常需要 5 到 10 分鐘的時間。<

  5. 瀏覽至端點 URL (例如 contoso.example.azurefd.net) 並確認其中是否顯示 Power Pages 網站的內容,以驗證安裝程式。

    瀏覽端點。

    提示

    如果您看到「404 找不到」回覆,安裝程式可能尚未完成。 請稍後再試一次。

設定自訂網域名稱

至此,已將 Azure Front Door 端點設定為可從 Power Pages 後端提供流量。 但是,此安裝程式仍然會使用 Azure Front Door URL,這會導致 captcha 檢查失敗或縮放問題等問題。

使用與您的入口網站 URL 不同的 Azure Front Door 端點 URL 時,網頁瀏覽器會拒絕 Power Pages 所設定的 Cookie。 因此,您的網站和 Azure Front Door 端點都必須設定自訂網域名稱。

  1. 在網站上設定自訂網域名稱。 其他資訊:新增自訂網域名稱

  2. 執行下列動作,以在 Azure Front Door 資源上啟用網站自訂網域名稱:

    1. 進行 Power Pages 的自訂網域設定時,移除先前建立的 CNAME 記錄以更新 DNS 提供者。 只會更新 CNAME;請勿移除原始主機名稱。 DNS 會將 CNAME 指向 Azure Front Door 端點。 新增 CNAME 的唯一目的是要確保 Power Pages 中有自訂主機名稱存在。 這種存在狀態確保 Power Pages 可以透過 Azure Front Door 提供此自訂網域名稱的流量,而且所有網站 Cookie 也都已正確設定網域。

    2. 依照下列步驟,在 Azure Front Door 端點上設定自訂網域變數名稱:使用 Azure 入口網站建立 Azure Front Door Standard/Premium SKU 上的自訂網域

  3. 請檢查下列各項以驗證安裝程式:

    1. 自訂網域名稱指向 Azure Front Door 端點。 使用 nslookup ,確認已正確傳回 Azure Front Door 端點的 CNAME 項目。 如果 CNAME 項目仍然指向 Power Pages,您必須修正此問題。

    2. 瀏覽至自訂網域名稱時,會顯示您的 Power Pages 網站頁面。

執行這些步驟之後,您已完成網站的基本 Azure Front Door 端點設定。 在接下來的步驟中,您將更新各種設定和規則,讓這項設定在處理不同的使用案例時更加有效且更好。

將網站設定為原始伺服器

下一個步是最佳化原始伺服器設定,以確保安裝程式可以正確運作。 請使用 Azure 入口網站上的 Azure Front Door 設定中的端點管理器來更新原始群組設定。

端點管理員。

在您先前執行的快速建立安裝程式期間,您輸入了端點詳細資料,這些是自動建立的設定,其名稱為預設原始群組 (相關) (名稱根據地區設定而定)。 在此步驟中,您將修改預設原始群組的設定。 下列影像會顯示當您第一次打開原始群組時,此步驟的設定。

初次見到的原始群組。

Azure Front Door 中的資源代表 Azure Front Door 邊緣伺服器連接的後端服務,能夠向使用者提供內容。 您可以將多個來源新增至您的 Azure Front Door 執行個體,能夠取得多個後端服務的內容。

提示

Power Pages 在其服務層提供高可用性,因此為網站設定原始來源時,單一原始伺服器就已足夠。

入口網站的單一原始來源必須指向 Power Pages 網站主機名稱 (您先前已設定)。 如果未遵循快速建立設定步驟,您可以新增指向網站主機名稱的新原始來源。

下列影像顯示了原始設定的範例。

原始設定。

使用下列設定來設定 Power Pages 網站的原始來源。

選項 設定類型或價值
來源類型 選取自訂
原始主機名稱 輸入網站主機名稱。 例如,contoso.powerappsportals.com
來源主機標題 輸入您的自訂網域名稱,或保留空白。 前者可確保 Azure Front Door 會將原始標題傳送為自訂網域名稱;例如,稍後會讓它透過使用者在發出要求時提供的任何資料進行傳遞。
HTTP 連接埠 80
HTTPS 連接埠 443
優先順序 1
Weight 1000
私人連結 停用
執行狀態 選取啟用此來源核取方塊。

設定來源並傳回原始群組之後,請依照下表所述的健康探詢和負載平衡選項更新設定。

選項 設定類型或價值
健康探詢 Health 探詢是一種機制,可確保原始服務已開啟並正在執行,並根據探詢結果進行路由決定。 在此案例中,我們不需要健康探詢,因此我們將其關閉。
負載平衡 因為我們有單一原始設定,而健康探詢是關閉的,所以此設定不會在此安裝程式中發揮任何作用。

確認原始群組設定看起來類似下列影像。

驗證原始設定。

設定路由規則為快取記憶體靜態要求

路由會判斷我們如何使用 Azure Front Door 的邊緣快取功能來改善網站的可擴縮性。 設定路由也是重要的步驟,可確保我們不會快取網站所提供服務的動態內容,這可能會造成非預期的資料存取。

設定路由。

至於規則設定,我們需要執行下列各項:

  1. 設定路由設定
  2. 設定規則集
  3. 將規則集與路由關聯
  4. 驗證規則和路由設定

設定路由設定

若要設定路由設定,請在左窗格中選取端點管理員,選取路由,然後選取預設路由。 預設-路由是在快速建立安裝體驗期間建立。

路由設定。

更新路由設定,如下表所述。

選項 組態
網域區段
網域 提前設定自訂網域名稱時所使用的網域名稱。
要符合的模式 設定為 /* (預設值);在設定中,所有網站要求都會傳送至同一個原始來源。
接受的通訊協定 設定僅限 HTTPS,以確保所有服務的通訊都是安全的。
重新導向 選取將所有流量重新導向為使用 HTTPS核取方塊。
原始群組區段
原始群組 設定為先前定義的原始群組。
來源路徑 保留空白。
轉寄通訊協定 設定為僅限 HTTPS符合接收要求
快取區段
快取功能 如果您要使用邊緣快取,請選取啟用快取核取方塊。
查詢字串快取行為 選取使用查詢字串,確保可以提供根據查詢字串提供的動態內容。
壓縮 選取啟用壓縮以最佳化內容傳遞。

設定規則集

規則集可管理內容的快取方式。 這項步驟很重要,因為可以控制邊緣伺服器快取內容的方式以改善網站的擴縮情況。 但是,未正確設定的規則集可能會針對每位使用者,將動態內容設定為專門為每位使用者提供服務。

為了正確設定規則集,請務必了解網站正在提供的內容類型。 這種瞭解可協助您使用有效的規則來設定規則集。 就本文中的案例來說,網站會在所有頁面上使用動態內容,而且也會提供靜態檔案;因此,網站正在嘗試完成下列工作:

  • 所有靜態檔案都是在邊緣伺服器上進行快取和提供服務。
  • 不會快取任何頁面內容。

若要設定此規則集

  1. 在左窗格中,選取規則集,然後選取新增規則集

    設定規則集。

  2. 輸入規則集名稱,然後儲存該名稱。

    建立新的規則集。

現在,讓我們根據業務需求來設定規則集,並使用下列設定來符合上述案例的需求。

要求:所有靜態檔案都是在邊緣伺服器上進行快取和提供服務

此案例中的網站可以包含副檔名為 .css、.png、.jpg、.js、.svg、.woff 或 .ico 的靜態檔案。 因此,我們需要規則來評估要求的檔案副檔名,並檢查是否有特定的檔案類型。

注意

您可以使用其他方式來撰寫此規則,例如使用要求 URL 或檔案名稱。 如需 Azure Front Door 規則符合條件的詳細資訊,請前往 Azure Front Door 規則引擎符合條件

範例要求檔案附檔名條件。

名為「要求檔案附檔名」且運算子設定為 [等於] 的 IF 條件螢幕擷取畫面時,會將值設定為 css png jpg js svg woff ico,並將案例轉換設定為 [無轉換]。

在下列動作設定中,您可以覆寫 Power Pages 所設定的快取標頭,讓這些檔案在瀏覽器中快取得稍久一些。 根據預設,Power Pages 會將快取期限設定為一天。 但我們將會在此案例中覆寫該設定,並將其設定為七天,方法是設定快取到期動作,並將快取行為設定為覆寫,如下圖所示。

範例快取到期動作。

結束時,完整規則看起來就像下列影像。

最終副檔名伸規則。

要求:不會快取任何頁面內容

一般而言,Power Pages 網站設定確保只要頁面有表單內嵌於其中 (表示要提供與特定記錄相關的內容),就會將其 Cache-control 標頭值設定為 private,這可確保 Azure Front Door 不會快取該要求。 但是,此方法並未考慮您使用 Liquid 範本在頁面上嵌入使用者特定內容的案例,例如將特定記錄顯示給一組使用者。 因此,我們會新增明確的規則,以確保沒有快取任何網站頁面。

第一個步驟是設定條件。 這個條件會對我們在第一個規則中所做的動作進行反向檢查,並檢查要求中包括副檔名的檔案,該檔案會指向我們想要快取的其中一種檔案類型。

範例不等於要求檔案附檔名條件。

名為「要求檔案附檔名」且運算子設定為 [不等於] 的 IF 條件螢幕擷取畫面時,會將值設定為 css png jpg js svg woff ico,並將案例轉換設定為 [無轉換]。

在動作條件中,與先前規則類似,我們將為快取到期編寫動作。 不過,這次我們會將行為設定為繞過快取。 這可確保任何符合此規則的要求都不會被存入快取。

快取到期設定。

完整規則看起來就像下列影像。

頁面內容快取的完整規則。

將規則集與路由關聯

建立規則集之後,下一個步驟是將它與路由建立關聯。

  1. 選取規則集,然後在命令列中選取關聯路由

    選取以關聯規則集中的路由。

  2. 選取端點名稱及可用的路由。 可能會有多個可用的路由,因此請選取先前設定的可用路由。

    關聯路由

  3. 如果您有多個規則集,而且想要定義其中計算的順序,請選取變更規則集順序,然後設定訂單。 我們的範例案例只有一個規則集。

    變更規則集的順序。

  4. 選取完成以完成。

驗證規則和路由設定

若要驗證規則和路由設定是否能正確運作,請確認所有通訊都是透過 HTTPS 提供,而且快取規則經過正確評估。

若要確保所有通訊都是透過 HTTPS 提供,而且所有 HTTP 呼叫都會被重新導向至 HTTPS

  • 在瀏覽器中輸入網域名稱,並在呈現內容時,確保 URL 會自動變更為 HTTPS。

確保已評估並如預期方式運作快取規則

若要檢查快取規則,我們需要在網頁瀏覽器的開發人員工具列中分析網路追蹤,以驗證是否已正確設定不同內容類型的快取記憶體標題。

注意

規則變更最多可能需要 10 分鐘才能反映出來。

  1. 開啟新的瀏覽器索引標籤、開啟開發人員工具列,然後瀏覽至 Power Pages 網站 URL (請務必在瀏覽至 URL 之前,先開啟開發人員工具列)。

  2. 前往網路索引標籤以查看所有的網路要求。

  3. 從要求清單中選取任何 CSS 檔案的要求。

    在要求詳細資料的回應標題區段中,確保有名為 x 快取的標題。 此標題可確保要求是透過邊緣伺服器提供,而且可以進行快取。 如果 x-cache 的值設定為 CONFIG_NOCACHE (或任何其他包含 NOCACHE 一詞的值),此設定即不正確。

    名為 x-cache 的回應標頭,包含快取命中值。

  4. 與先前步驟類似,請選取頁面要求,並檢查其標題。 如果x 快取設定為 CONFIG_NOCACHE,則您的安裝程式可以正確運作。

    名為 x-cache 的回應標頭,包含頁面的 CONFIG_NOCACHE 值。

設定 WAF 規則來分析接收的要求

安裝程式的下一個步驟是針對接收的要求設定 WAF 規則。 在文章中,我們只涵蓋基本步驟。 如需進階 WAF 設定,請前往 Azure Web 應用程式防火牆 (位於 Azure Front Door)

  1. 在左側窗格上,選取安全性

    Azure Front Door 設定的安全性標籤。

    在快速建立安裝程式期間,我們已經設定了可在此顯示的新 WAF 原則。 不過,如果您略過該步驟,您可以選取新增來設定新原則。

  2. 選取 WAF 原則的名稱。

  3. 選取原則設定,然後:

    1. 啟用要求本文檢查:如果您要在 cookie、標題和 URL 之外,同時檢查要求本文,請選取此核取方塊。

    2. 重新導向 URL:輸入非網站 URL。 如果將 WAF 規則設定為重新導向,使用者會被重新導向至此 URL。 請確定此 URL 可以公開且匿名存取。

    3. 封鎖要求狀態碼:如果 WAF 封鎖要求,則會將此 HTTP 狀態碼傳回給使用者。

    4. 阻止回應本文:您可以在此新增自訂訊息,如果 WAF 封鎖該要求,就會顯示給使用者。

    WAF 的原則設定。

  4. 若要設定每個要求的規則集,請執行下列步驟:

    1. 在左窗格中,選取管理規則

      受管理的規則 - 規則集

    2. 在命令列上,選取指派,然後從預設規則集清單中選取。 受管理的規則集由 Microsoft 進行管理,並定期更新。 如需規則集的詳細資訊,請前往 Web 應用程式防火牆 DRS 規則群組和規則

      管理規則集 - 指派

在指派受管理的規則集後,您的設定即已完成。 作為額外的步驟,您也可以查看如何設定現有規則的排除清單,以及啟用自訂規則。

重要

根據預設,WAF 會在偵測原則中設定,這會偵測已定義規則集的問題,並將其登入。 但是,此模式並不會封鎖要求。 若要封鎖要求,必須將 WAF 切換至防護模式。

我們建議您在防護模式中執行全面測試,確認所有案例都能正常運作,並確定您不需要調整規則集或新增排除原則。 只有在您驗證整個設定是否如預期運作之後,才能啟用防護模式。

將 Power Pages 設定為只接受來自 Azure Front Door 的流量

此設定的最後一個步驟是確保 Power Pages 網站只接受來自 Azure Front Door 的流量。 若要進行此驗證,我們必須在網站上啟用 IP 位址限制

若要尋找 Azure Front Door 運作的 IP 位址範圍,請前往如何將存取權鎖定至後端,僅使用 Azure Front Door?

注意

Power Pages 不支援根據 X-Azure-FDID 進行的篩選。

增加原始回應時間

根據預設,Azure Front Door 的原始回應超時為 60 秒。 但是,我們建議將此時間增加至 240 秒,以確保長時間執行的案例 (例如檔案上傳或匯出至 Excel) 可如期運作。

  1. 在左窗格中,選取端點管理員

    選取端點經理。

  2. 選取編輯端點

    選取編輯端點。

  3. 在右上角,選取端點屬性

    選取端點屬性。

  4. 將原始回復時間變更為 240 秒,然後選取更新

    將端點原始回應時間設定為 240 秒。

請參閱

Azure Front Door 是什麼?
快速入門:建立 Azure Front Door 設定檔 - Azure 入口網站
使用 Azure 入口網站在 Azure Front Door Standard/Premium SKU SKU 上建立自訂網域
如何鎖定只有 Azure Front Door 才能存取我的後端?
Azure Front Door 規則引擎符合條件