自定义VCL以绕过Fastly缓存
您可以创建一个自定义VCL代码段来绕过Fastly缓存,这样您就可以对到源服务器的请求流量进行故障排除。 例如,您可以创建一个代码片段以确定网站问题是由缓存还是标头疑难解答引起的。
您可以配置此代码片段,以绕过针对来自特定IP地址或URL的请求的快速缓存。
先决条件:
-
您的环境必须配置为使用Fastly CDN。 请参阅配置Fastly服务。
-
确保您运行的是Magento2的最新版Fastly CDN模块。 请参阅升级Fastly模块。
-
验证Fastly服务的环境配置。 请参阅检查Fastly缓存。
-
您必须拥有管理员凭据才能访问暂存环境和生产环境。
根据IP地址或URL绕过Fastly缓存:
-
登录管理员。
-
单击 存储 >设置> 配置 > 高级 > 系统。
-
展开 全页缓存 > Fastly配置 > 自定义VCL代码片段。
-
单击 创建自定义代码片段。
-
添加VCL代码片段值:
-
名称 —
bypass_fastly
-
类型 —
recv
-
优先级 —
5
-
VCL 代码片段内容 —
以下示例绕过Fastly获取特定IP地址:
code language-conf if (client.ip == "<Your IPv4 IP address>" || client.ip == "<Your IPv6 IP address>") { return(pass); }
以下示例绕过特定URL模式的Fastly:
code language-conf if (req.url ~ "/media/feeds/GoogleShoppingHiVisNew.xml") { return (pass);}
要获得精确的URL匹配项,请使用
==
运算符而不是~
运算符。 有关详细信息,请参阅Fastly VCL引用。
-
-
单击 创建。
-
重新加载页面后,在 Fastly配置 部分中单击 将VCL上传到Fastly。
-
上载完成后,根据页面顶部的通知刷新缓存。
Fastly在上传过程中验证更新的VCL版本。 如果验证失败,请编辑自定义VCL代码片段以修复所有问题。 然后,再次上传VCL。
添加VCL代码段后,可以使用cURL命令将来自指定IP地址或URL的请求提交到源服务器,如以下示例所示:
curl -svo /dev/null www.example.com/index.html
然后,检查响应以排除未缓存内容的问题。
$MAGENTO_CLOUD_APP_DIR/var/vcl_snippets_custom
目录添加代码片段,而不是手动上传自定义VCL代码片段。 当您在Commerce Admin中单击_将VCL上传到Fastly_时,此目录中的代码片段会自动上传。 有关Magento2文档,请参阅Fastly CDN模块中的自动自定义VCL代码片段部署。修改自定义VCL代码片段
-
登录管理员。
-
单击 存储 > 设置 > 配置 > 高级 > 系统。
-
展开 全页缓存 > Fastly配置 > 自定义VCL代码片段。
-
在 操作 列中,单击要编辑的代码片段旁边的设置图标。
-
重新加载页面后,在 Fastly配置 部分中单击 将VCL上传到Fastly。
-
上载完成后,根据页面顶部的通知刷新缓存。
删除自定义VCL代码片段
-
登录管理员。
-
单击 存储 > 设置 > 配置 > 高级 > 系统。
-
展开 全页缓存 > Fastly配置 > 自定义VCL代码片段。
-
在 操作 列中,单击要删除的代码片段旁边的垃圾桶图标。
-
在下一个模式窗口中,单击 DELETE 并激活新版本。