diff --git a/main.go b/main.go index 0c5a9fcb2d4b5816b2149a8ea97a8ea7ff4acced..324e4dc113480552bb45f1cf6bbcc1940f373f32 100644 --- a/main.go +++ b/main.go @@ -36,7 +36,6 @@ var listenUmask = flag.Int("listenUmask", 022, "Umask for Unix socket, default: var authBackend = flag.String("authBackend", "http://localhost:8080", "Authentication/authorization backend") var authSocket = flag.String("authSocket", "", "Optional: Unix domain socket to dial authBackend at") var pprofListenAddr = flag.String("pprofListenAddr", "", "pprof listening address, e.g. 'localhost:6060'") -var relativeURLRoot = flag.String("relativeURLRoot", "/", "GitLab relative URL root") var documentRoot = flag.String("documentRoot", "public", "Path to static files content") var responseHeadersTimeout = flag.Duration("proxyHeadersTimeout", time.Minute, "How long to wait for response headers when proxying the request") var developmentMode = flag.Bool("developmentMode", false, "Allow to serve assets from Rails app") @@ -170,6 +169,5 @@ func main() { } upstream := newUpstream(*authBackend, proxyTransport) - upstream.SetRelativeURLRoot(*relativeURLRoot) log.Fatal(http.Serve(listener, upstream)) } diff --git a/upstream.go b/upstream.go index 7530f378c28cfb6f816c7bf5b66b7f1ce12af907..a0f179c51b86af66a38d7023395f3bd5613a696f 100644 --- a/upstream.go +++ b/upstream.go @@ -68,25 +68,22 @@ func newUpstream(authBackend string, authTransport http.RoundTripper) *upstream if err != nil { log.Fatalln(err) } + relativeURLRoot := u.Path + if !strings.HasSuffix(relativeURLRoot, "/") { + relativeURLRoot += "/" + } + u.Path = "" // Would cause redirect loop in ReverseProxy up := &upstream{ authBackend: authBackend, httpClient: &http.Client{Transport: authTransport}, httpProxy: httputil.NewSingleHostReverseProxy(u), - relativeURLRoot: "/", + relativeURLRoot: relativeURLRoot, } up.httpProxy.Transport = authTransport return up } -func (u *upstream) SetRelativeURLRoot(relativeURLRoot string) { - u.relativeURLRoot = relativeURLRoot - - if !strings.HasSuffix(u.relativeURLRoot, "/") { - u.relativeURLRoot += "/" - } -} - func (u *upstream) ServeHTTP(ow http.ResponseWriter, r *http.Request) { var g httpRoute