mothership/headless-shopware-varnish-cache

为无头Shopware添加Varnish缓存的Shopware包

3.0.0 2024-05-27 14:28 UTC

This package is auto-updated.

Last update: 2024-08-27 14:58:34 UTC


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

如你所见,使用了两个环境变量

示例Varnish配置

请参阅简化后的示例Varnish配置此处
还有一个示例可用,它只使用xkeys 在此处

免责声明:这不是一个生产就绪的配置文件,已简化以显示缓存解决方案的基本部分!

使用

安装和激活后,该模块会自动在配置的主机上使Varnish缓存失效,当Shopware中的缓存标签被无效化时。
例如,如果产品更改,Shopware默认会无效化该产品的缓存标签。因此,包含此产品的所有页面也会被无效化,从而始终保持最新。

手动清除缓存的CLI命令

bin/console varnish:invalidate

  • 默认情况下,它会清除所有主机的整个缓存
  • --tags : 要清除的逗号分隔的标签
  • --regex : 匹配要清除的URL的正则表达式

通过curl手动清除

使用xkeys版本

使用自定义标题版本