From 2e527015daa2b828eb2b8c8aaccb0333f49d2a4b Mon Sep 17 00:00:00 2001 From: "Jesper B. Rosenkilde" Date: Fri, 12 Jul 2024 11:40:02 +0200 Subject: [PATCH 1/2] Add Caddyfile support of setting active health check request method --- modules/caddyhttp/reverseproxy/caddyfile.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/modules/caddyhttp/reverseproxy/caddyfile.go b/modules/caddyhttp/reverseproxy/caddyfile.go index 9de7aedd944..ab180b3d823 100644 --- a/modules/caddyhttp/reverseproxy/caddyfile.go +++ b/modules/caddyhttp/reverseproxy/caddyfile.go @@ -79,6 +79,7 @@ func parseCaddyfile(h httpcaddyfile.Helper) (caddyhttp.MiddlewareHandler, error) // health_headers { // [] // } +// health_method // // # passive health checking // fail_duration @@ -387,6 +388,18 @@ func (h *Handler) UnmarshalCaddyfile(d *caddyfile.Dispenser) error { } h.HealthChecks.Active.Headers = healthHeaders + case "health_method": + if !d.NextArg() { + return d.ArgErr() + } + if h.HealthChecks == nil { + h.HealthChecks = new(HealthChecks) + } + if h.HealthChecks.Active == nil { + h.HealthChecks.Active = new(ActiveHealthChecks) + } + h.HealthChecks.Active.Method = d.Val() + case "health_interval": if !d.NextArg() { return d.ArgErr() From cc097c9d933a31ed5217c0600c83512a464e6644 Mon Sep 17 00:00:00 2001 From: "Jesper B. Rosenkilde" Date: Fri, 12 Jul 2024 20:46:55 +0200 Subject: [PATCH 2/2] Add integration test for active health check request method --- .../reverse_proxy_health_method.caddyfiletest | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 caddytest/integration/caddyfile_adapt/reverse_proxy_health_method.caddyfiletest diff --git a/caddytest/integration/caddyfile_adapt/reverse_proxy_health_method.caddyfiletest b/caddytest/integration/caddyfile_adapt/reverse_proxy_health_method.caddyfiletest new file mode 100644 index 00000000000..920702c10b4 --- /dev/null +++ b/caddytest/integration/caddyfile_adapt/reverse_proxy_health_method.caddyfiletest @@ -0,0 +1,40 @@ +:8884 + +reverse_proxy 127.0.0.1:65535 { + health_uri /health + health_method HEAD +} +---------- +{ + "apps": { + "http": { + "servers": { + "srv0": { + "listen": [ + ":8884" + ], + "routes": [ + { + "handle": [ + { + "handler": "reverse_proxy", + "health_checks": { + "active": { + "method": "HEAD", + "uri": "/health" + } + }, + "upstreams": [ + { + "dial": "127.0.0.1:65535" + } + ] + } + ] + } + ] + } + } + } + } +}