我有两个“用于实验室目的”的Web服务器,它们具有相同的网页。我还安装了清漆来做round_robin和其他种类的平衡方法。 但是,当我将Web服务的整个地址放在“ 10.0.0.252/blog”时,我的清漆将返回以下错误:后端主机“ 10.0.0.253/blog” 名称或服务未知
import directors; # load the directors
backend server1 {
.host = "10.0.0.253/blog";
}
backend server2 {
.host = "10.0.0.252/blog";
}
sub vcl_init {
new bar = directors.round_robin();
bar.add_backend(server1);
bar.add_backend(server2);
}
sub vcl_recv {
# send all traffic to the bar director:
set req.backend_hint = bar.backend();
}
如果我仅将Web服务器地址放在“ 10.0.0.252”,则清漆开始时没有错误,但是如何定义页面?以及其他问题,我需要在Web服务器端进行任何配置吗?在阿帕奇(Apache)还是什么? 非常感谢。
答案 0 :(得分:0)
.host
使用IP或域名,因此:
backend server1 {
.host = "10.0.0.253";
}
backend server2 {
.host = "10.0.0.252";
}
如果您想在所有请求前添加“ / blog”,请添加
set req.url = "/blog" + req.url;
在``vcl_recv''的开头。
要检查请求的去向和URL,请将其添加到您的VCL:
sub vcl_backend_response {
set beresp.http.used = beresp.backend.ip + bereq.url;
}
另外,在发出请求时查看varnishlog -g request
的输出。您将在那里获得很多信息。
答案 1 :(得分:0)
import directors;
# load the directors
vcl 4.0;
sub vcl_backend_response {
set beresp.http.used = beresp.backend.ip + bereq.url;
}
backend server1 {
.host = "10.0.0.253";
}
backend server2 {
.host = "10.0.0.252";
}
sub vcl_init {
new bar = directors.round_robin();
bar.add_backend(server1);
bar.add_backend(server2);
}
sub vcl_recv {
set req.url = "/blog" + req.url;
set req.backend_hint = bar.backend();
}