mothership / headless-shopware-varnish-cache
为无头Shopware添加Varnish缓存的Shopware包
3.0.0
2024-05-27 14:28 UTC
Requires
- php: >=8.2
- shopware/core: ^v6.6
- shopware/storefront: ^v6.6
README
此Shopware包为无头Shopware添加Varnish缓存适配器。
如果启用,当Shopware中的缓存标签被无效化时,它会自动使Varnish缓存失效。这样,外部前端应用就可以使用有效的全页面缓存(FPC)和无头Shopware后端一起工作。
此包旨在与相应的nuxt模块一起使用,例如用于Shopware-PWA。不过,如果无头应用程序以其他方式设置缓存标签,它也可以不使用nuxt模块。
目前这显然仅适用于自托管的Shopware实例,因为您需要能够安装此包。
安装
确保已全局安装Composer,如Composer文档中的安装章节中所述。
使用Symfony Flex的应用程序
打开命令行,进入您的项目目录,然后执行
$ composer require mothership/headless-shopware-varnish-cache
不使用Symfony Flex的应用程序
步骤 1: 下载包
打开命令行,进入您的项目目录,然后执行以下命令以下载此包的最新稳定版本
$ composer require mothership/headless-shopware-varnish-cache
步骤 2: 启用包
然后,通过将其添加到项目config/bundles.php
文件中注册的包列表来启用包
// config/bundles.php return [ // ... Mothership\HeadlessShopwareVarnishCacheBundle\HeadlessShopwareVarnishCacheBundle::class => ['all' => true], ];
步骤 3: 配置
首先添加配置文件
# www/config/packages/cache.yml headless_shopware_varnish_cache: enabled: "%env(bool:HEADLESS_VARNISH_ACTIVE)%" reverse_proxy: hosts: "%env(csv:HEADLESS_VARNISH_HOSTS)%" max_parallel_invalidations: 3 ban_method: "BAN" tag_flush_threshold: 100 use_xkey: true # requires Varnish module xkey xkey_chunksize: 50 # optional, default: 50
如你所见,使用了两个环境变量
HEADLESS_VARNISH_ACTIVE
: 1或0以激活/禁用HEADLESS_VARNISH_HOSTS
: 以逗号分隔的Varnish主机列表,例如 "https://www.mydomain.de ,https://www.mydomain.com"
示例Varnish配置
请参阅简化后的示例Varnish配置此处。
还有一个示例可用,它只使用xkeys 在此处。
免责声明:这不是一个生产就绪的配置文件,已简化以显示缓存解决方案的基本部分!
使用
安装和激活后,该模块会自动在配置的主机上使Varnish缓存失效,当Shopware中的缓存标签被无效化时。
例如,如果产品更改,Shopware默认会无效化该产品的缓存标签。因此,包含此产品的所有页面也会被无效化,从而始终保持最新。
手动清除缓存的CLI命令
bin/console varnish:invalidate
- 默认情况下,它会清除所有主机的整个缓存
- --tags : 要清除的逗号分隔的标签
- --regex : 匹配要清除的URL的正则表达式