mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-27 22:23:48 +03:00
parent
0a14f97e49
commit
5e729c1e85
1 changed files with 6 additions and 1 deletions
|
@ -524,7 +524,7 @@ func (h *Handler) proxyLoopIteration(r *http.Request, origReq *http.Request, w h
|
||||||
|
|
||||||
// proxy the request to that upstream
|
// proxy the request to that upstream
|
||||||
proxyErr = h.reverseProxy(w, r, origReq, repl, dialInfo, next)
|
proxyErr = h.reverseProxy(w, r, origReq, repl, dialInfo, next)
|
||||||
if proxyErr == nil || proxyErr == context.Canceled {
|
if proxyErr == nil || errors.Is(proxyErr, context.Canceled) {
|
||||||
// context.Canceled happens when the downstream client
|
// context.Canceled happens when the downstream client
|
||||||
// cancels the request, which is not our failure
|
// cancels the request, which is not our failure
|
||||||
return true, nil
|
return true, nil
|
||||||
|
@ -1180,6 +1180,11 @@ func statusError(err error) error {
|
||||||
// errors proxying usually mean there is a problem with the upstream(s)
|
// errors proxying usually mean there is a problem with the upstream(s)
|
||||||
statusCode := http.StatusBadGateway
|
statusCode := http.StatusBadGateway
|
||||||
|
|
||||||
|
// timeout errors have a standard status code (see issue #4823)
|
||||||
|
if err, ok := err.(net.Error); ok && err.Timeout() {
|
||||||
|
statusCode = http.StatusGatewayTimeout
|
||||||
|
}
|
||||||
|
|
||||||
// if the client canceled the request (usually this means they closed
|
// if the client canceled the request (usually this means they closed
|
||||||
// the connection, so they won't see any response), we can report it
|
// the connection, so they won't see any response), we can report it
|
||||||
// as a client error (4xx) and not a server error (5xx); unfortunately
|
// as a client error (4xx) and not a server error (5xx); unfortunately
|
||||||
|
|
Loading…
Reference in a new issue