Hi, This is part of my varnish configuration file for sharding: ``` cat /etc/varnish/default.vcl
vcl 4.1; import directors; probe myprobe { .request = "HEAD /healthcheck.php HTTP/1.1" "Connection: close" "User-Agent: Varnish Health Probe"; .timeout = 1s; .interval = 5s; .window = 5; .threshold = 3; } backend b-01 { .host = "b-01"; .port = "80"; .probe = myprobe; } backend b-02 { .host = "b-02"; .port = "80"; .probe = myprobe; } backend b-03 { .host = "b-03"; .port = "80"; .probe = myprobe; } sub vcl_init { new hls_cluster = directors.shard(); hls_cluster.add_backend(b-01); hls_cluster.add_backend(b-02); hls_cluster.add_backend(b-03); new p = directors.shard_param(); hls_cluster.set_rampup(30s); # hls_cluster.set_warmup(0.5); hls_cluster.reconfigure(); hls_cluster.associate(p.use()); } acl purge { "localhost"; } sub vcl_recv { set req.backend_hint = hls_cluster.backend(); } sub vcl_backend_fetch { p.set(by=KEY, key=hls_cluster.key(bereq.url)); set bereq.backend = hls_cluster.backend(resolve=LAZY, healthy=CHOSEN); } ``` 1. there are two set backend in this config, one is on vcl_recv: "set req.backend_hint = hls_cluster.backend();" and one in vcl_backend_fetch: "set bereq.backend = hls_cluster.backend(resolve=LAZY, healthy=CHOSEN);" should I remove set in vcl_recv cause I think if I adjust it , all requset will go through this backend list and configs like healthy=CHOSEN in vcl_backend_fetch wouldnt be applied! Am I true? 2.Actually what is difference between vcl_backend_fetch and vcl_recv? 3.should I remove "set req.backend_hint" from vcl_recv? Best regards,Hamidreza
_______________________________________________ varnish-misc mailing list varnish-misc@varnish-cache.org https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc