后台改了商品名,Magento cache:clean也跑了,源站已经是新内容,Varnish仍给旧页面。手工重启Varnish当然能好,但这不是修复,只是把整站缓存掀掉。
先看源站响应有没有 X-Magento-Tags,再看Magento发出的PURGE/BAN是否到达Varnish。中间的Nginx如果把标签头隐藏,Varnish存进去的对象就失去可定位标签。
curl -sI -H 'Host: example.com' http://origin/product.html | grep -i magento varnishlog -g request -q 'ReqMethod == "PURGE"' varnishadm ban.list
商品页里还有自定义块
核心商品保存会清理catalog_product_123标签,但自定义ViewModel或Block如果展示了商品数据却没有实现IdentityInterface,页面可能不带对应tag。给组件返回真实实体标签,别用一个全局CUSTOM_BLOCK标签把所有页面绑在一起。
还要检查VCL的PURGE ACL。Magento Web节点换了IP,Varnish拒绝BAN时,应用日志未必显眼。修复后改一个测试SKU,只观察相关商品页、分类页是否更新,其他无关页面仍应保持HIT,这才证明标签清理正常。

