設定Fastly服務

雲端基礎結構測試和生產環境上的Adobe Commerce需要Fastly。

Fastly與Varnish合作,提供快速快取功能以及用於靜態資產的內容傳遞網路(CDN)。 Fastly還提供網站應用程式防火牆(WAF),以保護您的網站和雲端基礎結構。 為了保護您的網站和雲端基礎結構免受惡意流量和攻擊,請透過Fastly路由所有傳入的網站流量。

NOTE
Fastly在整合環境中不可用。

請完成下列步驟,在網站開發流程的早期階段啟用、設定和測試Fastly,以啟用對網站的安全存取。

  • 取得測試和生產環境的Fastly認證
  • 啟用Fastly CDN快取
  • 上傳Fastly VCL片段
  • 更新DNS設定以將流量路由到Fastly服務
  • 測試Fastly快取
NOTE
啟用和驗證初始Fastly設定後,您可以自訂設定。 例如,您可以啟用其他選項,例如影像最佳化、邊緣模組和自訂VCL程式碼。 請參閱自訂快取組態。

在專案布建期間,Adobe會將您的專案新增至雲端基礎結構上Adobe Commerce的Fastly服務帳戶,並為Starter master和Pro測試和生產環境建立Fastly帳戶認證。 每個環境都有獨特的認證。

您需要Fastly認證才能從Adobe Commerce管理員設定Fastly CDN服務並提交Fastly API請求。

Fastly管理員儀表板存取權

在雲端基礎結構上使用Adobe Commerce,您無法直接存取Fastly管理員儀表板。

使用Adobe Commerce管理員檢閱和更新環境的Fastly設定。 如果您無法在管理員中使用Fastly功能解決問題,請提交Adobe Commerce支援票證。

取得Fastly認證

測試和生產環境的Fastly服務ID和API權杖會儲存在您的雲端專案環境中。 您需要這兩個環境的認證。

取得Cloud Pro專案的認證:

在Cloud Pro專案上,從IaaS掛載的共用目錄檢查認證。

  1. 使用SSH連線至伺服器。

  2. 開啟/mnt/shared/fastly_tokens.txt檔案以取得認證。

    測試和生產環境都有獨特的認證。 您必須取得每個環境的認證。

取得Cloud Starter專案的認證:

在Cloud Starter專案中,從Cloud Console或使用Cloud CLI取得認證:

  • 從Cloud Console,檢查環境設定中的下列環境變數。

    • CONFIG__DEFAULT__SYSTEM__FULL_PAGE_CACHE__FASTLY__FASTLY_API_KEY

    • CONFIG__DEFAULT__SYSTEM__FULL_PAGE_CACHE__FASTLY__FASTLY_SERVICE_ID

  • 從您本機工作區的命令列,使用magento-cloud CLI至清單並檢閱 Fastly環境變數。

    code language-bash
    magento-cloud variable:get -e <environment-ID>
    

疑難排解

保護您的認證

請勿在支援票證、公開論壇或任何公開位置共用您的API Token。 此外,永遠不要將API權杖認可給程式碼存放庫 — 存放庫應僅包含沒有敏感資訊的不可變檔案。

Adobe Commerce支援已可存取必要的金鑰,因此您在尋求協助時不需要提供API Token。

如果您的API Token曾公開共用或附加至支援票證,即視為已洩漏。 在這種情況下,需要Adobe為您產生新Token。

啟用Fastly快取

您需要以下元件來啟用和設定Fastly服務:

  • 適用於Magento 2模組🔗的最新版Fastly CDN已安裝在中繼和生產環境中。 請參閱Fastly升級。

  • 雲端基礎結構中繼和生產環境上Adobe Commerce的Fastly認證

若要在Staging和Production中啟用Fastly CDN快取:

  1. 登入管理員。

  2. 按一下「Stores > Settings > Configuration > Advanced > System」並展開​Full Page Cache。

    展開以選取Fastly

  3. 在​ Caching Application ​區段中,從​ Use system value ​移除選取專案,然後從下拉式清單中選取​Fastly CDN。

    選擇Fastly

  4. 展開​ Fastly Configuration ​並選擇快取選項。

  5. 設定快取選項後,按一下頁面頂端的​Save Config。

  6. 根據通知清除快取。

  7. 導覽回​Stores > Settings > Configuration > Advanced > System > Fastly Configuration,繼續設定Fastly。

測試Fastly認證

  1. 在管理員中,瀏覽至​Stores > Settings > Configuration > Advanced > System > Fastly Configuration。

  2. 如有需要,請為您的專案環境新增​ Fastly service ID ​和​ API token ​值。

    Fastly認證管理員

    note
    NOTE
    請勿選取連結來建立Fastly API權杖。 請改用Adobe🔗提供的Fastly認證(服務ID和API權杖)。
  3. 按一下​Test credentials。

  4. 如果測試成功,請按一下​Save Config,然後清除快取。

    如果測試失敗,請確認正確的服務ID和API權杖值符合目前環境的認證。

    如果測試再次失敗,請提交Adobe Commerce支援票證或聯絡您的Adobe客戶代表。 對於Pro專案,請包含生產及測試網站的URL。 對於入門專案,包含您的Master和測試網站的URL。

NOTE
如需為測試或生產環境變更Fastly API權杖認證的指示,請參閱變更Fastly認證。

將VCL上傳到Fastly

啟用Fastly模組後,將預設VCL代碼上傳到Fastly伺服器。 此程式碼提供一系列VCL程式碼片段,這些程式碼會指定組態設定,以啟用雲端基礎結構上Adobe Commerce的快取和其他Fastly CDN服務。

NOTE
在您完成將Fastly VCL程式碼的初始上傳到Adobe Commerce中繼和生產網站之前,Fastly快取服務無法運作。

若要上傳Fastly VCL:

  1. 在​ Fastly Configuration ​區段中,按一下​Upload VCL to Fastly,如下圖所示。

    將Magento VCL上傳至Fastly

  2. 上傳完成後,請根據頁面頂端的通知重新整理快取。

布建SSL/TLS憑證

Adobe提供網域驗證讓我們加密SSL/TLS憑證,以提供來自Fastly的安全HTTPS流量。 Adobe為每個Pro生產、測試和入門生產環境提供一個憑證,以保護該環境中的所有網域。 如需所提供憑證的詳細資訊,請參閱雲端基礎結構上Adobe Commerce的Adobe SSL (TLS)憑證。

NOTE
您可以提供自己的TLS或SSL憑證,而不使用Adobe提供的Let's Encrypt憑證。 不過,此程式需要額外的設定和維護工作。 若要選擇此選項,請提交Adobe Commerce支援票證,或與Adobe搭配使用,在雲端基礎結構環境中將自訂的託管憑證新增到您的Adobe Commerce。

若要為Adobe Commerce環境啟用SSL/TLS憑證,Adobe自動化會完成下列步驟:

  • 驗證網域擁有權
  • 布建Let’s Encrypt SSL/TLS憑證,涵蓋商店的指定頂層和子網域
  • 在網站上線時將憑證上傳到雲端環境

此自動化需要您更新網站的DNS設定,以提供網域驗證資訊。 使用下列方法中的​one:

  • DNS驗證 — 對於已上線的網站,請以指向Fastly服務的CNAME記錄更新您的DNS設定
  • ACME挑戰CNAME記錄 — 使用Adobe針對您環境中的每個網域提供的ACME挑戰CNAME記錄更新您的DNS設定
TIP
如果您的生產網域未啟用,請使用ACME挑戰CNAME記錄進行網域驗證。 及早將記錄新增至您的DNS設定可讓Adobe在網站啟動之前,以正確的網域布建SSL/TLS憑證。 在啟動至生產環境之前,您必須以Adobe提供的CNAME記錄取代這些預留位置記錄。

網域驗證完成後,Adobe會布建「讓我們加密TLS/SSL」憑證,並將其上傳至即時中繼或生產環境。 此程式最多可能需要12小時的時間。 Adobe建議您提前幾天完成DNS設定更新,以防止網站開發和啟動延遲。

使用開發設定更新DNS設定

在初始Fastly設定流程中,您可以使用以下URL來設定和測試Staging和生產環境中的Fastly快取:

  • 對於Pro測試與生產:

    • mcprod.<your-domain>.com
    • mcstaging.<your-domain>.com
  • 僅供入門級生產使用:

    • mcprod.<your-domain>.com

布建專案後,即可使用這些預設的生產前URL。 "your-domain"的值是您在入門流程中指定的網域名稱。

NOTE
您無法在入門專案上為非生產環境指定自訂網域。

若要將流量從您的商店URL路由到Fastly服務,請更新您的DNS設定。 當您更新設定時,Adobe會自動布建必要的SSL/TLS憑證,並將其上傳至您的雲端環境。 此布建最多可能需要12小時的時間。

NOTE
當您準備好啟動生產網站時,必須再次更新DNS設定以將您的生產網域指向Fastly服務並完成其他設定任務。 請參閱啟動檢查清單。

必要條件:

  • 啟用Fastly模組。
  • 上傳預設的Fastly VCL程式碼。
  • 提供每個環境的頂層和子網域清單給Adobe,或提交Adobe Commerce支援票證。
  • 等候確認指定的網域已新增到您的雲端環境。
  • 在入門專案中,將網域新增到您的Fastly服務設定。 請參閱管理網域。
  • 如需有關更新DNS設定的資訊,請向您的DNS登入器查詢您網域服務的正確方法。

若要更新您用於開發的DNS設定:

  1. 透過新增CNAME記錄: prod.magentocloud.map.fastly.net將預生產URL指向Fastly服務,例如:

    table 0-row-2 1-row-2 2-row-2
    網域或子網域 CNAME
    mcprod.your-domain.com prod.magentocloud.map.fastly.net
    mcstaging.your-domain.com prod.magentocloud.map.fastly.net

    當CNAME記錄上線時,Adobe會布建憑證並上傳SSL/TLS憑證。

    note
    NOTE
    如果您計畫將Apex網域(your-domain.com)用於您的生產網站,您必須設定DNS位址記錄(A記錄)以指向Fastly伺服器IP位址。 請參閱使用生產設定更新DNS設定。
  2. 新增ACME挑戰CNAME記錄以進行網域驗證和生產SSL/TLS憑證的預先布建,例如:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2
    網域或子網域 CNAME
    _acme-challenge.your-domain.com 0123456789abcdef.validation.magento.cloud
    _acme-challenge.www.your-domain.com 9573186429stuvwx.validation.magento.com
    _acme-challenge.mystore.your-domain.com 1234567898zxywvu.validation.magento.cloud
    _acme-challenge.subdomain.your-domain.com 1098765743lmnopq.validation.magento.cloud
    note
    NOTE
    此範例中的ACME挑戰記錄為預留位置,目的並非布建您的Adobe Commerce預備和生產網站。 聯絡Adobe以取得您專案的正確ACME挑戰記錄資訊。

    新增CNAME記錄後,Adobe會驗證網域並為環境布建SSL/TLS憑證。 當您更新DNS設定以將流量從這些網域路由到Fastly服務時,Adobe會將憑證上傳到環境。

  3. 更新Adobe Commerce基底URL。

    • 使用SSH登入生產環境。

      code language-bash
      magento-cloud ssh
      
    • 使用Cloud CLI變更商店的基本URL。

      code language-bash
      php bin/magento setup:store-config:set --base-url="https://mcstaging.your-domain.com/"
      
    note
    NOTE
    除了使用Cloud CLI之外,您也可以從管理員更新基底URL
  4. 重新啟動網頁瀏覽器。

  5. 測試您的網站。

測試Fastly快取

完成DNS設定變更後,請使用cURL命令列工具來驗證Fastly快取是否正常運作。

若要檢查回應標頭:

  1. 在終端機中,使用下列curl命令測試您的即時網站URL:

    code language-bash
    curl -vo /dev/null -H Fastly-Debug:1 https://<live-URL>
    

    如果您尚未設定靜態路由或完成線上站台上網域的DNS設定,請使用繞過DNS名稱解析的--resolve旗標。

    code language-bash
    curl -vo /dev/null -H Fastly-Debug:1 --resolve <live-URL-hostname>:443:<live-IP-address>
    
  2. 在回應中,驗證標頭以確保Fastly正常運作。 例如,請參閱回應中的下列唯一標題:

    code language-http
    < Fastly-Magento-VCL-Uploaded: 1.2.228
    < X-Cache: HIT, MISS
    

如果標頭沒有正確的值,請參閱解決回應標頭中發現的錯誤以取得疑難排解說明。

升級Fastly模組

Fastly更新Magento 2模組的Fastly CDN以解決問題、提高效能並提供新功能。
Adobe建議您更新測試和生產環境中的Fastly模組至最新版本。

如需模組版本和更新的最新資訊,請參閱GitHub上Magento2模組🔗的Fastly CDN發行說明。

更新模組後,您必須上傳VCL程式碼以將變更套用至Fastly服務組態。

WARNING
如果您已使用自訂版本自訂預設的Fastly VCL程式碼,則升級Fastly模組會覆寫您的變更。 如果您已新增具有唯一名稱的自訂VCL片段,則這些變更會在升級過程中保留。 最佳實務是升級測試環境並驗證變更,然後再將變更套用至生產環境。

若要檢查Magento 2​的Fastly CDN模組版本:

  1. 變更至雲端環境的根目錄。

  2. 使用Composer檢查安裝的版本。

    code language-bash
    composer show *fastly*
    
  3. 如果未安裝最新版本,請完成升級Fastly模組的步驟。

若要升級Fastly模組:

  1. 在您的本機整合環境中,使用以下模組資訊來升級Fastly模組。

    code language-text
    module name: fastly/magento2
    repository: https://github.com/fastly/fastly-magento2.git
    
  2. 將更新推送至測試環境。

  3. 登入您的測試環境的Admin以上傳VCL代碼。

  4. 在Adobe Commerce測試網站上驗證Fastly服務。

在測試網站上驗證Fastly服務後,在生產環境中重複升級過程。

TIP
如果您的Adobe Commerce環境中遇到Fastly服務問題,請參閱Adobe Commerce Fastly疑難排解員。
recommendation-more-help
commerce-on-cloud-help-cloud-guide