我们使用以下配置在Debian Root上运行Magento CE 1.8:
Nginx --> Varnish 3.0 --> Apache
我们安装了“由Varnish驱动的PageSpeed”-Extension(但它不是第三方模块问题,我们在其他服务器上遇到了同样的问题)
现在问题: 如果我们更改某些产品,删除产品或其他东西,Varnish将不会清除这些URL(我想是这样)。 编辑产品时,我获得了504网关超时。 如果我重新启动清漆服务,一切正常 - 但我们无法通过magento后端触发清除。
所以我检查了我的/ etc / default / varnish文件以检查deamon_opts:
DAEMON_OPTS="-a :8080 \
-T localhost:6081 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,4G"
这不是默认的清漆配置,因为清漆前面的nginx使用端口80.所以Varnish再次拥有8080和Apache 80(仅限内部)。
Varnish Admin Port是6081,它也保存在PageSpeed-Extension中。 好的,我们来看看default.vcl(某些部分):
backend default {
.host = "127.0.0.1";
.port = "80";
}
//我认为这没关系,让我们看一下acl purge以允许magento清除URL:
acl purge {
"localhost";
"127.0.0.1";
}
//某些VCL-stuff //现在在“sub vcl_recv”中找到清除:
# purge request
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
ban("obj.http.X-Purge-Host ~ " + req.http.X-Purge-Host + " && obj.http.X-Purge-URL ~ " + req.http.X-Purge-Regex + " && obj.http.Content-Type ~ " + req.http.X-Purge-Content-Type);
error 200 "Purged.";
}
好的,现在问题详情。已经有一段时间了,因为我检查了某种日志,其中说“超时”(15秒后),但我忘记了我使用的工具。如果我想在Magento后端编辑产品,则会出现此问题。我点击保存然后加载并加载和加载。然后我在浏览器中获得 504 Gateway Time-Out 。
varnishlog说(在编辑产品的那一刻)0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1417774882 1.0
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1417774885 1.0
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1417774963 1.0
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1417774966 1.0
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1417774969 1.0
14 BackendClose b default
18 BackendOpen b default 127.0.0.1 34992 127.0.0.1 80
在我看来,magento后端无法触发清除过程。在日志中(具有超时的日志)是应该清除的URL。我认为magento和varnish之间存在某种连接失败(CLI?)
如何解决具体问题? 有没有工具,命令或技巧? 我不知道问题是什么。
提前谢谢!
答案 0 :(得分:0)
此命令将清除所有Url的
varnishadm" ban req.url~ /"