配置Fastly服务

云基础架构暂存和生产环境上的Adobe Commerce需要Fastly。

Fastly与Varnish合作,提供快速缓存功能以及用于静态资产的内容交付网络(CDN)。 Fastly还提供了一个Web应用程序防火墙(WAF),以保护您的站点和云基础架构。 为了保护您的站点和云基础架构免受恶意流量和攻击,请通过Fastly路由所有传入的站点流量。

NOTE
Fastly在集成环境中不可用。

请完成以下步骤,在站点开发过程的早期启用、配置和测试快速访问,以启用对站点的安全访问。

  • 获取暂存和生产环境的Fastly凭据
  • 启用Fastly CDN缓存
  • 上传Fastly VCL片段
  • 更新DNS配置以将流量路由到Fastly服务
  • 测试Fastly缓存
NOTE
启用并验证初始Fastly配置后,您可以自定义配置。 例如,可以启用其他选项,如图像优化、边缘模块和自定义VCL代码。 请参阅自定义缓存配置

获取Fastly凭据

在项目配置期间,Adobe将您的项目添加到云基础架构上Adobe Commerce的Fastly服务帐户,并为Starter master和Pro暂存和生产环境创建Fastly帐户凭据。 每个环境都有唯一的凭据。

您需要Fastly凭据才能从管理员配置Fastly CDN服务并提交Fastly API请求。

NOTE
在云基础架构上使用Adobe Commerce,您无法直接访问Fastly管理员。 使用管理员查看和更新环境的Fastly配置。 如果您无法在管理员中使用Fastly功能解决问题,请提交Adobe Commerce支持票证

使用以下方法查找并保存环境的Fastly服务ID和API令牌:

要查看您的Fastly凭据

对于Pro和Starter项目,查看凭据的方法不同。

  • IaaS挂载的共享目录 — 在Pro项目上,使用SSH连接到您的服务器并从/mnt/shared/fastly_tokens.txt文件中获取Fastly凭据。 暂存环境和生产环境具有唯一的凭据。 您必须获取每个环境的凭据。

  • 本地工作区 — 从命令行中,使用magento-cloud CLI将列出并查看 Fastly环境变量。

    code language-bash
    magento-cloud variable:get -e <environment-ID>
    
  • Cloud Console — 在环境配置中检查以下环境变量。

    • CONFIG__DEFAULT__SYSTEM__FULL_PAGE_CACHE__FASTLY__FASTLY_API_KEY

    • CONFIG__DEFAULT__SYSTEM__FULL_PAGE_CACHE__FASTLY__FASTLY_SERVICE_ID

NOTE
如果您找不到暂存或生产环境的Fastly凭据,请联系您的Adobe客户技术顾问(CTA)。

启用Fastly缓存

您需要以下组件来启用和配置Fastly服务:

  • 暂存环境和生产环境中安装的适用于Magento2模块🔗的Fastly CDN的最新版本。 查看快速升级

  • 云基础架构暂存和生产环境上的Adobe Commerce的Fastly凭据

要在暂存和生产中启用Fastly CDN缓存

  1. 登录管理员。

  2. 单击​ 存储 >设置> 配置 > 高级 > 系统,然后展开​ 全页缓存

    展开以选择Fastly

  3. 在​ 缓存应用程序 ​部分中,从​ 使用系统值 ​中删除所选内容,然后从下拉列表中选择​ Fastly CDN

    选择Fastly

  4. 展开​ Fastly配置 ​并选择缓存选项

  5. 配置缓存选项后,单击页面顶部的​ 保存配置

  6. 根据通知清除缓存。

  7. 导航回​ 商店 > 设置 > 配置 > 高级 > 系统 > Fastly配置,以继续配置Fastly。

测试Fastly凭据

  1. 在管理员中,导航到​ 商店 >设置> 配置 > 高级 > 系统 > 快速配置

  2. 如果需要,请为您的项目环境添加​ Fastly服务ID ​和​ API令牌 ​值。

    Fastly凭据管理员

    note note
    NOTE
    请勿选择链接以创建Fastly API令牌。 请改用Adobe提供的Adobe🔗提供的Fastly凭据(服务ID和API令牌)。
  3. 单击​ 测试凭据

  4. 如果测试成功,请单击​ 保存配置,然后清除缓存。

    如果测试失败,请验证正确的服务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配置 ​部分中,单击​ 将VCL上传到Fastly,如下图所示。

    将MagentoVCL上载到Fastly

  2. 上载完成后,根据页面顶部的通知刷新缓存。

配置SSL/TLS证书

Adobe提供了一个域验证的Let’s Encrypt SSL/TLS证书,为来自Fastly的安全HTTPS流量提供服务。 Adobe为每个Pro Production 、 Staging和Starter Production环境提供一个证书,以保护该环境中的所有域。 有关提供的证书的详细信息,请参阅云基础架构上Adobe Commerce的AdobeSSL (TLS)证书

NOTE
您可以提供自己的TLS或SSL证书,而不是使用Adobe提供的Let's Encrypt证书。 但是,此过程需要额外的设置和维护工作。 要选择此选项,请提交Adobe Commerce支持工单或与Adobe一起在云基础架构环境中将自定义的托管证书添加到Adobe Commerce。

要为Adobe Commerce环境启用SSL/TLS证书,Adobe自动化将完成以下步骤:

  • 验证域所有权
  • 设置一个让我们加密SSL/TLS证书,该证书覆盖商店的指定顶级域和子域
  • 在站点上线时将证书上传到云环境

此自动化要求您更新站点的DNS配置以提供域验证信息。 使用以下方法中的​ one

  • DNS验证 — 对于实时站点,使用指向Fastly服务的CNAME记录更新您的DNS配置
  • ACME质询CNAME记录 — 使用Adobe为您环境中的每个域提供的ACME质询CNAME记录更新您的DNS配置
TIP
如果您有一个非活动的生产域,请使用ACME质询CNAME记录进行域验证。 提前将记录添加到您的DNS配置可让Adobe在站点启动之前为SSL/TLS证书配置正确的域。 在启动到生产环境之前,必须使用Adobe提供的CNAME记录替换这些占位符记录。

域验证完成后,Adobe预配Let’s Encrypt TLS/SSL证书,并将其上传到实时暂存或生产环境。 此过程可能需要12小时。 我们建议您提前几天完成DNS配置更新,以防止网站开发和网站启动出现延迟。

使用开发设置更新DNS配置

在初始Fastly设置过程中,您可以使用以下URL在暂存环境和生产环境中配置和测试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
    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
    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
    NOTE
    作为使用Cloud CLI的替代方法,您可以从管理员更新基本URL
  4. 重新启动Web浏览器。

  5. 测试您的网站。

测试Fastly缓存

完成DNS配置更改后,请使用cURL命令行工具验证Fastly缓存是否正常工作。

检查响应标头

  1. 在终端中,使用以下curl命令测试您的实时网站URL:

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

    如果尚未设置静态路由或完成实时站点上域的DNS配置,请使用--resolve标志,该标志绕过DNS名称解析。

    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: yes
    < X-Cache: HIT, MISS
    

如果标头没有正确的值,请参阅解决在响应标头中发现的错误以获取故障排除帮助。

升级Fastly模块

Fastly更新了Magento2模块的Fastly CDN,以解决问题、提高性能并提供新功能。
我们建议您将暂存和生产环境中的Fastly模块更新为最新版本

更新模块后,必须上传VCL代码以将更改应用于Fastly服务配置。

WARNING
如果已使用自定义版本自定义了默认Fastly VCL代码,则升级Fastly模块将覆盖所做的更改。 如果添加了具有唯一名称的自定义VCL代码段,则在升级过程中会保留这些更改。 作为最佳实践,请升级暂存环境并验证更改,然后再将更改应用于生产环境。

检查Magento2 ​的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. 登录到暂存环境的管理员以上传VCL代码

  4. 在Adobe Commerce暂存网站上验证Fastly服务

在暂存站点上验证Fastly服务后,请在生产环境中重复升级过程。

TIP
如果您在Adobe Commerce环境中遇到Fastly服务问题,请参阅Adobe Commerce Fastly疑难解答程序
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26