From 9b3549ab5bc6a154473e1b921b959a0cd3ee9a97 Mon Sep 17 00:00:00 2001 From: Craig Peterson Date: Fri, 11 Sep 2015 10:53:29 -0600 Subject: [PATCH] Reverse proxies setting host header properly --- cmd/bosun/main.go | 1 + cmd/bosun/web/web.go | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cmd/bosun/main.go b/cmd/bosun/main.go index 0025d64d64..293d5b0347 100644 --- a/cmd/bosun/main.go +++ b/cmd/bosun/main.go @@ -129,6 +129,7 @@ func main() { w.WriteHeader(204) return } + r.Host = c.TSDBHost rp.ServeHTTP(w, r) })) slog.Infoln("readonly relay at", ts.URL, "to", tsdbHost) diff --git a/cmd/bosun/web/web.go b/cmd/bosun/web/web.go index 3730ea60df..b8ecc1b3f4 100644 --- a/cmd/bosun/web/web.go +++ b/cmd/bosun/web/web.go @@ -124,6 +124,7 @@ func Listen(listenAddr string, devMode bool, tsdbHost string) error { type relayProxy struct { *httputil.ReverseProxy + host string } type passthru struct { @@ -153,6 +154,7 @@ func (rp *relayProxy) ServeHTTP(responseWriter http.ResponseWriter, r *http.Requ } reader := &passthru{ReadCloser: r.Body} r.Body = reader + r.Host = rp.host w := &relayWriter{ResponseWriter: responseWriter} rp.ReverseProxy.ServeHTTP(w, r) indexTSDB(r, reader.buf.Bytes()) @@ -163,10 +165,13 @@ func (rp *relayProxy) ServeHTTP(responseWriter http.ResponseWriter, r *http.Requ } func Relay(dest string) http.Handler { - return &relayProxy{ReverseProxy: httputil.NewSingleHostReverseProxy(&url.URL{ - Scheme: "http", - Host: dest, - })} + return &relayProxy{ + ReverseProxy: httputil.NewSingleHostReverseProxy(&url.URL{ + Scheme: "http", + Host: dest, + }), + host: dest, + } } func indexTSDB(r *http.Request, body []byte) {