diff --git a/pkg/probe/http/http.go b/pkg/probe/http/http.go index 9e8b0e1168..a5fce49fa7 100644 --- a/pkg/probe/http/http.go +++ b/pkg/probe/http/http.go @@ -64,6 +64,9 @@ func DoHTTPProbe(url *url.URL, headers http.Header, client HTTPGetInterface) (pr return probe.Failure, err.Error(), nil } req.Header = headers + if headers.Get("Host") != "" { + req.Host = headers.Get("Host") + } res, err := client.Do(req) if err != nil { // Convert errors into failures to catch timeouts. diff --git a/pkg/probe/http/http_test.go b/pkg/probe/http/http_test.go index 748abe748a..88a0ef8883 100644 --- a/pkg/probe/http/http_test.go +++ b/pkg/probe/http/http_test.go @@ -85,6 +85,20 @@ func TestHTTPProbeChecker(t *testing.T) { "X-Muffins-Or-Cupcakes: muffins", }, }, + { + // Echo handler that returns the contents of Host in the body + func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte(r.Host)) + }, + http.Header{ + "Host": {"muffins.cupcakes.org"}, + }, + probe.Success, + []string{ + "muffins.cupcakes.org", + }, + }, { handleReq(FailureCode, "fail body"), nil,