From 3319167a97ec04dafa86e38a542510a8505ced89 Mon Sep 17 00:00:00 2001 From: TossPig Date: Fri, 2 Jun 2017 12:14:54 +0800 Subject: [PATCH 1/3] Get The HeaderXForwardedProto https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto --- context.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/context.go b/context.go index b90d8db8d..f84778c0e 100644 --- a/context.go +++ b/context.go @@ -225,6 +225,9 @@ func (c *context) Scheme() string { if c.IsTLS() { return "https" } + if scheme := c.request.Header.Get(HeaderXForwardedProto); scheme != "" { + return scheme + } return "http" } From a557b3c18e76af225b96f81beef31a5677f72e33 Mon Sep 17 00:00:00 2001 From: TossPig Date: Fri, 2 Jun 2017 12:26:17 +0800 Subject: [PATCH 2/3] add HeaderXForwardedSsl --- echo.go | 1 + 1 file changed, 1 insertion(+) diff --git a/echo.go b/echo.go index 42c2bf83a..14cc5bb9d 100644 --- a/echo.go +++ b/echo.go @@ -183,6 +183,7 @@ const ( HeaderXForwardedProto = "X-Forwarded-Proto" HeaderXHTTPMethodOverride = "X-HTTP-Method-Override" HeaderXForwardedFor = "X-Forwarded-For" + HeaderXForwardedSsl = "X-Forwarded-Ssl" HeaderXRealIP = "X-Real-IP" HeaderXRequestID = "X-Request-ID" HeaderServer = "Server" From 279090485cdefaa12bb83e785cf0d4fe1b75e89a Mon Sep 17 00:00:00 2001 From: TossPig Date: Fri, 2 Jun 2017 12:28:13 +0800 Subject: [PATCH 3/3] Get The HeaderXForwardedSsl --- context.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/context.go b/context.go index f84778c0e..44822f2f3 100644 --- a/context.go +++ b/context.go @@ -227,6 +227,9 @@ func (c *context) Scheme() string { } if scheme := c.request.Header.Get(HeaderXForwardedProto); scheme != "" { return scheme + } + if ssl := c.request.Header.Get(HeaderXForwardedSsl); ssl == "on" { + return "https" } return "http" }