考虑在VPS Web服务器上安装Varnish Cache,但想知道如果PHP代码需要调试可能会导致什么问题。在过去,我发现缓存系统使调试更加困难,因为网页的缓存版本在代码更改后不会立即更改。理想情况下,调试需要在测试站点上完成,但有时需要在生产版本上进行。
在调试时,可以为各个域或整个服务器临时关闭Varnish Cache吗?
答案 0 :(得分:2)
在生产盒上应该没有或很少开发,但实际上,有时您需要对实时站点的内容进行故障排除。
Varnish使得查看为什么对页面的特定请求失败有点麻烦:它将使用自己的“Backend Fetch Failed”错误掩盖致命的PHP错误。这使得您的PHP代码出现问题并使您立即责怪Varnish。
您可以通过将所有请求直接传递到配置的后端来临时使Varnish通过其缓存。通过这种方式,它在调试PHP代码方面完全相同(就好像Varnish实际上并不存在!)。我的步骤是:
sub vcl_recv {
后立即打开一行return (pipe);
service varnish reload
或systemctl reload varnish
重新加载您的Varnish配置(取决于您的Linux发行版)。要返回缓存(生产设置),请删除该行并再次重新加载Varnish。执行这些步骤时没有停机时间。