mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-27 22:23:48 +03:00
reverseproxy: always set req.URL.Host with upstream (#3297)
This commit is contained in:
parent
e3a8f72f1c
commit
da8686c4b9
1 changed files with 9 additions and 11 deletions
|
@ -613,19 +613,17 @@ func (lb LoadBalancing) tryAgain(start time.Time, proxyErr error, req *http.Requ
|
|||
// directRequest modifies only req.URL so that it points to the upstream
|
||||
// in the given DialInfo. It must modify ONLY the request URL.
|
||||
func (h Handler) directRequest(req *http.Request, di DialInfo) {
|
||||
if req.URL.Host == "" {
|
||||
// we need a host, so set the upstream's host address
|
||||
reqHost := di.Address
|
||||
// we need a host, so set the upstream's host address
|
||||
reqHost := di.Address
|
||||
|
||||
// if the port equates to the scheme, strip the port because
|
||||
// it's weird to make a request like http://example.com:80/.
|
||||
if (req.URL.Scheme == "http" && di.Port == "80") ||
|
||||
(req.URL.Scheme == "https" && di.Port == "443") {
|
||||
reqHost = di.Host
|
||||
}
|
||||
|
||||
req.URL.Host = reqHost
|
||||
// if the port equates to the scheme, strip the port because
|
||||
// it's weird to make a request like http://example.com:80/.
|
||||
if (req.URL.Scheme == "http" && di.Port == "80") ||
|
||||
(req.URL.Scheme == "https" && di.Port == "443") {
|
||||
reqHost = di.Host
|
||||
}
|
||||
|
||||
req.URL.Host = reqHost
|
||||
}
|
||||
|
||||
// shouldPanicOnCopyError reports whether the reverse proxy should
|
||||
|
|
Loading…
Reference in a new issue