diff --git a/pkg/middlewares/forwardedheaders/forwarded_header.go b/pkg/middlewares/forwardedheaders/forwarded_header.go index 4d796c55d..4bbae8a95 100644 --- a/pkg/middlewares/forwardedheaders/forwarded_header.go +++ b/pkg/middlewares/forwardedheaders/forwarded_header.go @@ -132,18 +132,18 @@ func (x *XForwarded) rewrite(outreq *http.Request) { xfProto := outreq.Header.Get(xForwardedProto) if xfProto == "" { - if outreq.TLS != nil { - outreq.Header.Set(xForwardedProto, "https") + if isWebsocketRequest(outreq) { + if outreq.TLS != nil { + outreq.Header.Set(xForwardedProto, "wss") + } else { + outreq.Header.Set(xForwardedProto, "ws") + } } else { - outreq.Header.Set(xForwardedProto, "http") - } - } - - if isWebsocketRequest(outreq) { - if outreq.Header.Get(xForwardedProto) == "https" || outreq.Header.Get(xForwardedProto) == "wss" { - outreq.Header.Set(xForwardedProto, "wss") - } else { - outreq.Header.Set(xForwardedProto, "ws") + if outreq.TLS != nil { + outreq.Header.Set(xForwardedProto, "https") + } else { + outreq.Header.Set(xForwardedProto, "http") + } } }