aboutsummaryrefslogtreecommitdiff
path: root/go/weed
diff options
context:
space:
mode:
Diffstat (limited to 'go/weed')
-rw-r--r--go/weed/weed_server/master_server.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/go/weed/weed_server/master_server.go b/go/weed/weed_server/master_server.go
index 3f6b3bc2d..c5d9646c9 100644
--- a/go/weed/weed_server/master_server.go
+++ b/go/weed/weed_server/master_server.go
@@ -113,6 +113,14 @@ func (ms *MasterServer) proxyToLeader(f func(w http.ResponseWriter, r *http.Requ
}
glog.V(4).Infoln("proxying to leader", ms.Topo.RaftServer.Leader())
proxy := httputil.NewSingleHostReverseProxy(targetUrl)
+ director := proxy.Director
+ proxy.Director = func(req *http.Request) {
+ actualHost, err := security.GetActualRemoteHost(req)
+ if err == nil {
+ req.Header.Set(("HTTP_X_FORWARDED_FOR", actualHost)
+ }
+ director(req)
+ }
proxy.Transport = util.Transport
proxy.ServeHTTP(w, r)
} else {