Re: How to adjust priority for both backend healthy
I'm formally abandoning this thread and will only focus on the other one -- Guillaume Quintard On Thu, Feb 18, 2021 at 8:21 AM Hamidreza Hosseini wrote: > I read you article and it was great but I didn't find out my answer, I > said that I have 2 layer varnish: disk layer and ram layer and ram layer, > I want to check the health of layer 2 for example: > > Varnish Ram ===> Varnish Disk ===> Webserver > I adjust this probe on varnish ram: > > probe myprobe { > .request = > "HEAD / HTTP/1.1" > "Connection: close" > "User-Agent: Varnish Health Probe"; > .timeout = 1s; > .interval = 5s; > .window = 5; > .threshold = 3; > } > and varnish says: ` 0 Backend_health - boot.varnish_1 Still sick > 0 3 5 0.00 0.00 Open error 111 (Connection refused)` > And I think it is right because it checks HEAD / on varnish backends and > there is nothing there! > So I'm asking how should I configure the probe to trigger another varnish > health as a backend > > Best regards. > > -- > *From:* Hamidreza Hosseini > *Sent:* Thursday, February 18, 2021 5:31 AM > *To:* varnish-misc@varnish-cache.org > *Subject:* How to adjust priority for both backend healthy > > I have two backend that both of them are healthy and I use fallback for > them and I want to say all request should goes to backend1 and if backend1 > become unhealthy all requests should go to backend2 but backend1 has higher > priority and when backend1 become healthy, all requests should go to > backend1, > How can I define priority? > my config: > > ``` > vcl 4.1; > > import directors; > > probe myprobe { > .request = > "HEAD / HTTP/1.1" > "Connection: close" > "User-Agent: Varnish Health Probe"; > .timeout = 1s; > .interval = 5s; > .window = 5; > .threshold = 3; > } > > backend backend1 { .host = "backend1"; .port = "8080"; .probe = myprobe; } > > backend backend2 { .host = "backend2"; .port = "8080"; .probe = myprobe; } > backend backend3 { .host = "backend3"; .port = "8080"; .probe = myprobe; } > > > sub vcl_init { > > new backend2_cluster = directors.round_robin(); > backend2_cluster.add_backend(backend2); > backend3_cluster.add_backend(backend3); > > > new backend_cluster_fb = directors.fallback(); > backend1_fb.add_backend(backend1); > backend2_cluster_fb.add_backend(backend2_cluster.backend()); > } > > sub vcl_recv { > set req.backend_hint = backend_cluster_fb.backend(); > > } > > ``` > > ___ > varnish-misc mailing list > varnish-misc@varnish-cache.org > https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc > ___ varnish-misc mailing list varnish-misc@varnish-cache.org https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
Re: How to adjust priority for both backend healthy
I read you article and it was great but I didn't find out my answer, I said that I have 2 layer varnish: disk layer and ram layer and ram layer, I want to check the health of layer 2 for example: Varnish Ram ===> Varnish Disk ===> Webserver I adjust this probe on varnish ram: probe myprobe { .request = "HEAD / HTTP/1.1" "Connection: close" "User-Agent: Varnish Health Probe"; .timeout = 1s; .interval = 5s; .window = 5; .threshold = 3; } and varnish says: ` 0 Backend_health - boot.varnish_1 Still sick 0 3 5 0.00 0.00 Open error 111 (Connection refused)` And I think it is right because it checks HEAD / on varnish backends and there is nothing there! So I'm asking how should I configure the probe to trigger another varnish health as a backend Best regards. From: Hamidreza Hosseini Sent: Thursday, February 18, 2021 5:31 AM To: varnish-misc@varnish-cache.org Subject: How to adjust priority for both backend healthy I have two backend that both of them are healthy and I use fallback for them and I want to say all request should goes to backend1 and if backend1 become unhealthy all requests should go to backend2 but backend1 has higher priority and when backend1 become healthy, all requests should go to backend1, How can I define priority? my config: ``` vcl 4.1; import directors; probe myprobe { .request = "HEAD / HTTP/1.1" "Connection: close" "User-Agent: Varnish Health Probe"; .timeout = 1s; .interval = 5s; .window = 5; .threshold = 3; } backend backend1 { .host = "backend1"; .port = "8080"; .probe = myprobe; } backend backend2 { .host = "backend2"; .port = "8080"; .probe = myprobe; } backend backend3 { .host = "backend3"; .port = "8080"; .probe = myprobe; } sub vcl_init { new backend2_cluster = directors.round_robin(); backend2_cluster.add_backend(backend2); backend3_cluster.add_backend(backend3); new backend_cluster_fb = directors.fallback(); backend1_fb.add_backend(backend1); backend2_cluster_fb.add_backend(backend2_cluster.backend()); } sub vcl_recv { set req.backend_hint = backend_cluster_fb.backend(); } ``` ___ varnish-misc mailing list varnish-misc@varnish-cache.org https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
Re: How to adjust priority for both backend healthy
Hi, No offense, I think you would get better answers on this mailing list if you started only one thread and focused on it. The current way of sending similar but slightly different questions, and then duplicating messages make it hard to focus for people willing to help you. With this being said, I believe I replied to this question in the other thread. Kind regards, -- Guillaume Quintard On Thu, Feb 18, 2021 at 7:11 AM Hamidreza Hosseini wrote: > How can I probe a backend varnish? for example I have 2 layer varnish disk > layer and ram layer and ram layer want to check the health of layer 2, How > can I do this? I've done something but I have error: > > sudo varnishadm backend.list -p > Backend name Admin ProbeLast updated > boot.varnish_1 probe Sick0/5 > Current states good: 0 threshold: 3 window: 5 > Average response time of good probes: 0.00 > Oldest == Newest > Happy > > sudo varnishlog -g raw -i Backend_health > 0 Backend_health - boot.varnish_1 Still sick 0 3 5 0.00 > 0.00 Open error 111 (Connection refused) > > my config: > probe myprobe { > .request = > "HEAD / HTTP/1.1" > "Connection: close" > "User-Agent: Varnish Health Probe"; > .timeout = 1s; > .interval = 5s; > .window = 5; > .threshold = 3; > } > > -- > *From:* Hamidreza Hosseini > *Sent:* Thursday, February 18, 2021 5:31 AM > *To:* varnish-misc@varnish-cache.org > *Subject:* How to adjust priority for both backend healthy > > I have two backend that both of them are healthy and I use fallback for > them and I want to say all request should goes to backend1 and if backend1 > become unhealthy all requests should go to backend2 but backend1 has higher > priority and when backend1 become healthy, all requests should go to > backend1, > How can I define priority? > my config: > > ``` > vcl 4.1; > > import directors; > > probe myprobe { > .request = > "HEAD / HTTP/1.1" > "Connection: close" > "User-Agent: Varnish Health Probe"; > .timeout = 1s; > .interval = 5s; > .window = 5; > .threshold = 3; > } > > backend backend1 { .host = "backend1"; .port = "8080"; .probe = myprobe; } > > backend backend2 { .host = "backend2"; .port = "8080"; .probe = myprobe; } > backend backend3 { .host = "backend3"; .port = "8080"; .probe = myprobe; } > > > sub vcl_init { > > new backend2_cluster = directors.round_robin(); > backend2_cluster.add_backend(backend2); > backend3_cluster.add_backend(backend3); > > > new backend_cluster_fb = directors.fallback(); > backend1_fb.add_backend(backend1); > backend2_cluster_fb.add_backend(backend2_cluster.backend()); > } > > sub vcl_recv { > set req.backend_hint = backend_cluster_fb.backend(); > > } > > ``` > > ___ > varnish-misc mailing list > varnish-misc@varnish-cache.org > https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc > ___ varnish-misc mailing list varnish-misc@varnish-cache.org https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
Re: How to adjust priority for both backend healthy
How can I probe a backend varnish? for example I have 2 layer varnish disk layer and ram layer and ram layer want to check the health of layer 2, How can I do this? I've done something but I have error: sudo varnishadm backend.list -p Backend name Admin ProbeLast updated boot.varnish_1 probe Sick0/5 Current states good: 0 threshold: 3 window: 5 Average response time of good probes: 0.00 Oldest == Newest Happy sudo varnishlog -g raw -i Backend_health 0 Backend_health - boot.varnish_1 Still sick 0 3 5 0.00 0.00 Open error 111 (Connection refused) my config: probe myprobe { .request = "HEAD / HTTP/1.1" "Connection: close" "User-Agent: Varnish Health Probe"; .timeout = 1s; .interval = 5s; .window = 5; .threshold = 3; } From: Hamidreza Hosseini Sent: Thursday, February 18, 2021 5:31 AM To: varnish-misc@varnish-cache.org Subject: How to adjust priority for both backend healthy I have two backend that both of them are healthy and I use fallback for them and I want to say all request should goes to backend1 and if backend1 become unhealthy all requests should go to backend2 but backend1 has higher priority and when backend1 become healthy, all requests should go to backend1, How can I define priority? my config: ``` vcl 4.1; import directors; probe myprobe { .request = "HEAD / HTTP/1.1" "Connection: close" "User-Agent: Varnish Health Probe"; .timeout = 1s; .interval = 5s; .window = 5; .threshold = 3; } backend backend1 { .host = "backend1"; .port = "8080"; .probe = myprobe; } backend backend2 { .host = "backend2"; .port = "8080"; .probe = myprobe; } backend backend3 { .host = "backend3"; .port = "8080"; .probe = myprobe; } sub vcl_init { new backend2_cluster = directors.round_robin(); backend2_cluster.add_backend(backend2); backend3_cluster.add_backend(backend3); new backend_cluster_fb = directors.fallback(); backend1_fb.add_backend(backend1); backend2_cluster_fb.add_backend(backend2_cluster.backend()); } sub vcl_recv { set req.backend_hint = backend_cluster_fb.backend(); } ``` ___ varnish-misc mailing list varnish-misc@varnish-cache.org https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
How to adjust priority for both backend healthy
I have two backend that both of them are healthy and I use fallback for them and I want to say all request should goes to backend1 and if backend1 become unhealthy all requests should go to backend2 but backend1 has higher priority and when backend1 become healthy, all requests should go to backend1, How can I define priority? my config: ``` vcl 4.1; import directors; probe myprobe { .request = "HEAD / HTTP/1.1" "Connection: close" "User-Agent: Varnish Health Probe"; .timeout = 1s; .interval = 5s; .window = 5; .threshold = 3; } backend backend1 { .host = "backend1"; .port = "8080"; .probe = myprobe; } backend backend2 { .host = "backend2"; .port = "8080"; .probe = myprobe; } backend backend3 { .host = "backend3"; .port = "8080"; .probe = myprobe; } sub vcl_init { new backend2_cluster = directors.round_robin(); backend2_cluster.add_backend(backend2); backend3_cluster.add_backend(backend3); new backend_cluster_fb = directors.fallback(); backend1_fb.add_backend(backend1); backend2_cluster_fb.add_backend(backend2_cluster.backend()); } sub vcl_recv { set req.backend_hint = backend_cluster_fb.backend(); } ``` ___ varnish-misc mailing list varnish-misc@varnish-cache.org https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc