在运行Varnish Cache的服务器上调试代码

时间:2018-01-13 12:14:45

标签: debugging varnish

考虑在VPS Web服务器上安装Varnish Cache,但想知道如果PHP代码需要调试可能会导致什么问题。在过去,我发现缓存系统使调试更加困难,因为网页的缓存版本在代码更改后不会立即更改。理想情况下,调试需要在测试站点上完成,但有时需要在生产版本上进行。

在调试时,可以为各个域或整个服务器临时关闭Varnish Cache吗?

1 个答案:

答案 0 :(得分:2)

在生产盒上应该没有或很少开发,但实际上,有时您需要对实时站点的内容进行故障排除。

Varnish使得查看为什么对页面的特定请求失败有点麻烦:它将使用自己的“Backend Fetch Failed”错误掩盖致命的PHP错误。这使得您的PHP代码出现问题并使您立即责怪Varnish。

您可以通过将所有请求直接传递到配置的后端来临时使Varnish通过其缓存。通过这种方式,它在调试PHP代码方面完全相同(就好像Varnish实际上并不存在!)。我的步骤是:

  1. 打开您的VCL文件,并在sub vcl_recv {后立即打开一行return (pipe);
  2. 使用service varnish reloadsystemctl reload varnish重新加载您的Varnish配置(取决于您的Linux发行版)。
  3. 要返回缓存(生产设置),请删除该行并再次重新加载Varnish。执行这些步骤时没有停机时间。