Skip to content

Commit

Permalink
reverseproxy: Caddyfile support for health_method (#6454)
Browse files Browse the repository at this point in the history
* Add Caddyfile support of setting active health check request method

* Add integration test for active health check request method
  • Loading branch information
jbro authored Jul 12, 2024
1 parent dc2a5d5 commit 07c8636
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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"
}
]
}
]
}
]
}
}
}
}
}
13 changes: 13 additions & 0 deletions modules/caddyhttp/reverseproxy/caddyfile.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ func parseCaddyfile(h httpcaddyfile.Helper) (caddyhttp.MiddlewareHandler, error)
// health_headers {
// <field> [<values...>]
// }
// health_method <value>
//
// # passive health checking
// fail_duration <duration>
Expand Down Expand Up @@ -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()
Expand Down

0 comments on commit 07c8636

Please sign in to comment.