配置Fastly服务
云基础架构暂存和生产环境上的Adobe Commerce需要Fastly。
Fastly与Varnish合作,提供快速缓存功能以及用于静态资产的内容交付网络(CDN)。 Fastly还提供了一个Web应用程序防火墙(WAF),以保护您的站点和云基础架构。 为了保护您的站点和云基础架构免受恶意流量和攻击,请通过Fastly路由所有传入的站点流量。
请完成以下步骤,在站点开发过程的早期启用、配置和测试快速访问,以启用对站点的安全访问。
- 获取暂存和生产环境的Fastly凭据
- 启用Fastly CDN缓存
- 上传Fastly VCL片段
- 更新DNS配置以将流量路由到Fastly服务
- 测试Fastly缓存
获取Fastly凭据
在项目配置期间,Adobe将您的项目添加到云基础架构上Adobe Commerce的Fastly服务帐户,并为Starter master
和Pro暂存和生产环境创建Fastly帐户凭据。 每个环境都有唯一的凭据。
您需要Fastly凭据才能从管理员配置Fastly CDN服务并提交Fastly API请求。
使用以下方法查找并保存环境的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
-
启用Fastly缓存
您需要以下组件来启用和配置Fastly服务:
要在暂存和生产中启用Fastly CDN缓存:
测试Fastly凭据
-
在管理员中,导航到 商店 >设置> 配置 > 高级 > 系统 > 快速配置。
-
如果需要,请为您的项目环境添加 Fastly服务ID 和 API令牌 值。
note note NOTE 请勿选择链接以创建Fastly API令牌。 请改用Adobe提供的Adobe🔗提供的Fastly凭据(服务ID和API令牌)。 -
单击 测试凭据。
-
如果测试成功,请单击 保存配置,然后清除缓存。
如果测试失败,请验证正确的服务ID和API令牌值是否与当前环境的凭据匹配。
如果测试再次失败,请提交Adobe Commerce支持工单或与您的Adobe客户代表联系。 对于Pro项目,请包含生产网站和暂存网站的URL。 对于入门项目,请包含您的
Master
和暂存站点的URL。
将VCL上传到Fastly
启用Fastly模块后,将默认VCL代码上传到Fastly服务器。 此代码提供了一系列VCL代码片段,这些代码片段指定了配置设置,以便为云基础架构上的Adobe Commerce启用缓存和其他Fastly CDN服务。
要上传Fastly VCL:
-
在 Fastly配置 部分中,单击 将VCL上传到Fastly,如下图所示。
-
上载完成后,根据页面顶部的通知刷新缓存。
配置SSL/TLS证书
Adobe提供了一个域验证的Let’s Encrypt SSL/TLS证书,为来自Fastly的安全HTTPS流量提供服务。 Adobe为每个Pro Production 、 Staging和Starter Production环境提供一个证书,以保护该环境中的所有域。 有关提供的证书的详细信息,请参阅云基础架构上Adobe Commerce的AdobeSSL (TLS)证书。
要为Adobe Commerce环境启用SSL/TLS证书,Adobe自动化将完成以下步骤:
- 验证域所有权
- 设置一个让我们加密SSL/TLS证书,该证书覆盖商店的指定顶级域和子域
- 在站点上线时将证书上传到云环境
此自动化要求您更新站点的DNS配置以提供域验证信息。 使用以下方法中的 one:
- DNS验证 — 对于实时站点,使用指向Fastly服务的CNAME记录更新您的DNS配置
- ACME质询CNAME记录 — 使用Adobe为您环境中的每个域提供的ACME质询CNAME记录更新您的DNS配置
域验证完成后,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"
的值是您在载入流程中指定的域名。
要将流量从您的商店URL路由到Fastly服务,请更新您的DNS配置。 当您更新配置时,Adobe会自动配置所需的SSL/TLS证书,并将它们上传到您的云环境。 此配置最多可能需要12小时。
先决条件:
要更新用于开发的DNS配置:
-
通过添加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配置。 -
添加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会将证书上传到环境。
-
更新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 -
-
重新启动Web浏览器。
-
测试您的网站。
测试Fastly缓存
完成DNS配置更改后,请使用cURL命令行工具验证Fastly缓存是否正常工作。
检查响应标头:
-
在终端中,使用以下
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>
-
在响应中,验证标头以确保Fastly正常工作。 您应在响应中看到以下唯一标头:
code language-http < Fastly-Magento-VCL-Uploaded: yes < X-Cache: HIT, MISS
如果标头没有正确的值,请参阅解决在响应标头中发现的错误以获取故障排除帮助。
升级Fastly模块
Fastly更新了Magento2模块的Fastly CDN,以解决问题、提高性能并提供新功能。
我们建议您将暂存和生产环境中的Fastly模块更新为最新版本。
更新模块后,必须上传VCL代码以将更改应用于Fastly服务配置。
检查Magento2 的Fastly CDN模块的版本:
-
更改为云环境的根目录。
-
使用Composer检查安装的版本。
code language-bash composer show *fastly*
-
如果未安装最新版本,请完成升级Fastly模块的步骤。
升级Fastly模块:
-
在本地集成环境中,使用以下模块信息升级Fastly模块。
code language-text module name: fastly/magento2 repository: https://github.com/fastly/fastly-magento2.git
-
将更新推送到暂存环境。
-
登录到暂存环境的管理员以上传VCL代码。
-
在Adobe Commerce暂存网站上验证Fastly服务。
在暂存站点上验证Fastly服务后,请在生产环境中重复升级过程。