美好的一天。我需要一些帮助,我不能在清漆中获得任何HIT / MISS响应。 请帮帮我..先谢谢.. 这是我的default.vcl配置。
backend default {
.host = "00.00.00.00";
.port = "80";
}
sub vcl_recv {
if (req.http.host == "www.example.com") {
unset req.http.cookie;
unset req.http.Vary;
}
else
{
return (pass);
}
}
sub vcl_backend_response {
set beresp.do_gzip = true;
unset beresp.http.Cache-Control;
set beresp.ttl = 1h;
set beresp.grace = 1w;
}
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
}
答案 0 :(得分:2)
您声明的唯一后端是0.0.0.0
,您应该声明正确的后端ip或dns。
Varnish是一个反向代理,它不会跟随Header:Host => IP http方式。它需要明确声明转发请求的位置。
答案 1 :(得分:1)
您的后端端口指向Varnish应该收听的位置。 Varnish应该在80上监听,后端默认应该是Apache现在列出的端口。 在您的VCL中将其更改为:
backend default {
.host = "127.0.0.1";
.port = "82";
}
您的/etc/varnish/varnish.params文件应将端口设置为80
VARNISH_LISTEN_PORT=80
在你的http.conf中,你应该将Apache设置为在82上监听。
Listen 0.0.0.0:82
重新启动Apache,然后重新启动Varnish。现在,您可以正确地将流量代理回Apache。我给出的IP就是例子,YMMV。
适当的流程:
[Internet] <-> (80)[Varnish] <-> (82)[Apache].