我能够配置清漆,但我猜不是缓存。在响应头中,我看到了这些属性:
Url : corp.zip.pr
Age →0
Via →1.1 varnish-v4
X-Varnish →98319
我的default.vcl文件如下:
# Marker to tell the VCL compiler that this VCL has been adapted to the
# new 4.0 format.
vcl 4.0;
# Default backend definition. Set this to point to your content server.
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
# Happens before we check if we have this in cache already.
#
# Typically you clean up the request here, removing cookies you don't need,
# rewriting the request, etc.
if (req.method == "PURGE") {
if (req.http.X-Purge-Method == "regex") {
ban("req.url ~ " + req.url + " && req.http.host ~ " + req.http.host);
return (synth(200, "Banned."));
} else {
return (purge);
}
}
if (req.url ~ "wp-admin|wp-login") {
return (pass);
}
if (!(req.url ~ "wp-(login|admin)")) {
unset req.http.cookie;
}
set req.http.cookie = regsuball(req.http.cookie, "wp-settings-d+=[^;]+(; )?", "");
set req.http.cookie = regsuball(req.http.cookie, "wp-settings-time-d+=[^;]+(; )?", "");
set req.http.cookie = regsuball(req.http.cookie, "wordpress_test_cookie=[^;]+(; )?", "");
if (req.http.cookie == "") {
unset req.http.cookie;
}
}
sub vcl_backend_response {
# Happens after we have read the response headers from the backend.
#
# Here you clean the response headers, removing silly Set-Cookie headers
# and other mistakes your backend does.
if (beresp.ttl == 120s) {
set beresp.ttl = 600s;
}
}
sub vcl_deliver {
# Happens when we have all the pieces we need, and are about to send the
# response to the client.
#
# You can do accounting or modifying the final object here.
}
此外,varnishlog不起作用。当我在终端中键入varnishlog时,我看到以下消息。
无法打开/opt/bitnami/varnish/var/varnish/_.vsm:没有这样的文件或目录
我检查了文件位置。此处不存在_.vsm
。我检查了varnishd进程使用的vsm位置。它是不同的
/var/lib/varnish/ip-172-31-10-1/
答案 0 :(得分:0)
您没有return (hash);
在您的vcl_recv
功能中,将其添加到功能正文的末尾,重新启动清漆并检查它是否有效。
我认为你的vcl很奇怪,也许试试这个例如https://www.htpcguides.com/configure-wordpress-varnish-4-cache-with-apache-or-nginx/