将 Varnish 连接到 Apache 服务器上的 Vsites

将 Varnish 连接到 Apache 服务器上的 Vsites

有人可以建议一个 VCL conf 来重定向(在 LAN 和 LAN DNS 内部)以到达多个命名主机吗?

IE http://x.ourdomain.com= Varnish 服务器的 IP = 重定向到 LAN 主机(即 10.0.5.1) http://y.ourdomain.com= Varnish 服务器的 IP = 重定向到 LAN 主机(即 10.0.5.5)等

我已经在 varnish 上呆了大约 5 个小时,我的一小部分大脑已经死亡。

答案1

sub vcl_recv {
  set req.backend = default_backend;
  if ( req.http.Host == "x.ourdomain.com" ) {
    set req.backend = x_backend;
  }
  if ( req.http.Host == "y.ourdomain.com" ) {
    set req.backend = y_backend;
  }
}

除非你正在寻找真正的重定向, 在这种情况下:

sub vcl_recv {
  if ( req.http.Host == "x.ourdomain.com" ) {
    error 750 "http://10.0.5.1" + req.url;
  }
  if ( req.http.Host == "y.ourdomain.com" ) {
    error 750 "http://10.0.5.5" + req.url;
  }
}

sub vcl_error {
  if ( obj.status == 750 ) {
    set obj.http.Location = obj.response;
    set obj.status = "302";
    set obj.response = "Found";
    return(deliver);
  }
}

相关内容