mirror of
https://github.com/caddyserver/caddy.git
synced 2026-05-22 23:02:32 -04:00
reverseproxy: Implement health_uri, deprecate health_path, supports query (#4050)
* reverseproxy: Implement health_uri, replaces health_path, supports query Also fixes a bug with `health_status` Caddyfile parsing , it would always only take the first character of the status code even if it didn't end with "xx". * reverseproxy: Rename to URI, named logger, warn in Provision (for JSON)
This commit is contained in:
@@ -23,6 +23,7 @@ import (
|
||||
"io"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
@@ -273,8 +274,10 @@ func (h *Handler) Provision(ctx caddy.Context) error {
|
||||
}
|
||||
|
||||
// if active health checks are enabled, configure them and start a worker
|
||||
if h.HealthChecks.Active != nil &&
|
||||
(h.HealthChecks.Active.Path != "" || h.HealthChecks.Active.Port != 0) {
|
||||
if h.HealthChecks.Active != nil && (h.HealthChecks.Active.Path != "" ||
|
||||
h.HealthChecks.Active.URI != "" ||
|
||||
h.HealthChecks.Active.Port != 0) {
|
||||
|
||||
h.HealthChecks.Active.logger = h.logger.Named("health_checker.active")
|
||||
|
||||
timeout := time.Duration(h.HealthChecks.Active.Timeout)
|
||||
@@ -282,6 +285,19 @@ func (h *Handler) Provision(ctx caddy.Context) error {
|
||||
timeout = 5 * time.Second
|
||||
}
|
||||
|
||||
if h.HealthChecks.Active.Path != "" {
|
||||
h.HealthChecks.Active.logger.Warn("the 'path' option is deprecated, please use 'uri' instead!")
|
||||
}
|
||||
|
||||
// parse the URI string (supports path and query)
|
||||
if h.HealthChecks.Active.URI != "" {
|
||||
parsedURI, err := url.Parse(h.HealthChecks.Active.URI)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
h.HealthChecks.Active.uri = parsedURI
|
||||
}
|
||||
|
||||
h.HealthChecks.Active.httpClient = &http.Client{
|
||||
Timeout: timeout,
|
||||
Transport: h.Transport,
|
||||
|
||||
Reference in New Issue
Block a user