Dusktown

Varnish多站点配置

在此说明一下,本文提到的Varnish版本是6.2.1, vcl 4.0 查看你的varnish版本,用如下命令varnishd -V


backend A_backend {
    .host = "127.0.0.1";
    .port = "8081";
}

backend B_backend {
    .host = "127.0.0.1";
    .port = "8080";
}

在sub vcl_recv中加入


if (req.http.host ~ "a.com") {
    set req.backend_hint = A_backend;
} elsif (req.http.host ~ "b.com") {
    set req.backend_hint = B_backend;
}

如果上面的配置不起作用,你应该检查一下Nginx是否设置了host 在nginx.conf中加入如下配置


 proxy_set_header        host $host;
 proxy_set_header        X-Real-IP $remote_addr;
 proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_pass              http://127.0.0.1:6081;

先用ps aux | grep "varnishd" 获得pid

然后kill -9 pid

最后用varnishd -f /etc/varnish/default.vcl -s malloc,1G -T 127.0.0.1:801 -a 0.0.0.0:6081

大功告成!

相关文章

评论