diff options
Diffstat (limited to 'go/weed')
| -rw-r--r-- | go/weed/weed_server/master_server.go | 8 |
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 { |
