@ -439,8 +439,15 @@ func (b *LocalBackend) proxyHandlerForBackend(backend string) (*httputil.Reverse
if err != nil {
if err != nil {
return nil , fmt . Errorf ( "invalid url %s: %w" , targetURL , err )
return nil , fmt . Errorf ( "invalid url %s: %w" , targetURL , err )
}
}
rp := httputil . NewSingleHostReverseProxy ( u )
rp := & httputil . ReverseProxy {
rp . Transport = & http . Transport {
Rewrite : func ( r * httputil . ProxyRequest ) {
r . SetURL ( u )
r . Out . Host = r . In . Host
if c , ok := r . Out . Context ( ) . Value ( serveHTTPContextKey { } ) . ( * serveHTTPContext ) ; ok {
r . Out . Header . Set ( "X-Forwarded-For" , c . SrcAddr . Addr ( ) . String ( ) )
}
} ,
Transport : & http . Transport {
DialContext : b . dialer . SystemDial ,
DialContext : b . dialer . SystemDial ,
TLSClientConfig : & tls . Config {
TLSClientConfig : & tls . Config {
InsecureSkipVerify : insecure ,
InsecureSkipVerify : insecure ,
@ -451,6 +458,7 @@ func (b *LocalBackend) proxyHandlerForBackend(backend string) (*httputil.Reverse
IdleConnTimeout : 90 * time . Second ,
IdleConnTimeout : 90 * time . Second ,
TLSHandshakeTimeout : 10 * time . Second ,
TLSHandshakeTimeout : 10 * time . Second ,
ExpectContinueTimeout : 1 * time . Second ,
ExpectContinueTimeout : 1 * time . Second ,
} ,
}
}
return rp , nil
return rp , nil
}
}