reverse_proxy: Configurable request headers on active health checks

See https://caddy.community/t/health-check-user-agent/6309
This commit is contained in:
Matthew Holt 2019-10-04 17:21:38 -06:00
parent c11e3bffd6
commit 44cb804b9e
No known key found for this signature in database
GPG Key ID: 2A349DD577D586A5
1 changed files with 4 additions and 0 deletions

View File

@ -43,6 +43,7 @@ type HealthChecks struct {
type ActiveHealthChecks struct {
Path string `json:"path,omitempty"`
Port int `json:"port,omitempty"`
Headers http.Header `json:"headers,omitempty"`
Interval caddy.Duration `json:"interval,omitempty"`
Timeout caddy.Duration `json:"timeout,omitempty"`
MaxSize int64 `json:"max_size,omitempty"`
@ -163,6 +164,9 @@ func (h *Handler) doActiveHealthCheck(dialInfo DialInfo, hostAddr string, host H
if err != nil {
return fmt.Errorf("making request: %v", err)
}
for key, hdrs := range h.HealthChecks.Active.Headers {
req.Header[key] = hdrs
}
// do the request, being careful to tame the response body
resp, err := h.HealthChecks.Active.httpClient.Do(req)