Fix redirection script
This commit is contained in:
parent
9b923c8961
commit
3b12461265
3 changed files with 9 additions and 11 deletions
|
@ -3,26 +3,25 @@ local redirect_to = ngx.arg[1]
|
|||
|
||||
local luaconfig = ngx.shared.luaconfig
|
||||
local use_forwarded_headers = luaconfig:get("use_forwarded_headers")
|
||||
local listen_https_ports = luaconfig:get("listen_https_ports")
|
||||
|
||||
|
||||
if string.sub(request_uri, -1) == "/" then
|
||||
request_uri = string.sub(request_uri, 1, -2)
|
||||
end
|
||||
|
||||
local redirectScheme
|
||||
local redirectScheme = ngx.var.scheme
|
||||
local redirectPort = ngx.var.server_port
|
||||
|
||||
if use_forwarded_headers then
|
||||
if not ngx.var.http_x_forwarded_proto then
|
||||
redirectScheme = ngx.var.scheme
|
||||
else
|
||||
if ngx.var.http_x_forwarded_proto then
|
||||
redirectScheme = ngx.var.http_x_forwarded_proto
|
||||
end
|
||||
else
|
||||
redirectScheme = ngx.var.scheme
|
||||
if ngx.var.http_x_forwarded_port then
|
||||
redirectPort = ngx.var.http_x_forwarded_port
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
return string.format("%s://%s:%s%s", redirectScheme,
|
||||
redirect_to, listen_https_ports, request_uri)
|
||||
redirect_to, redirectPort, request_uri)
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@ local configfile = cjson.decode(content)
|
|||
|
||||
local luaconfig = ngx.shared.luaconfig
|
||||
luaconfig:set("enablemetrics", configfile.enable_metrics)
|
||||
luaconfig:set("listen_https_ports", configfile.listen_ports.https)
|
||||
luaconfig:set("use_forwarded_headers", configfile.use_forwarded_headers)
|
||||
-- init modules
|
||||
local ok, res
|
||||
|
|
|
@ -58,7 +58,7 @@ var _ = framework.DescribeAnnotation("from-to-www-redirect", func() {
|
|||
WithHeader("Host", fmt.Sprintf("%s.%s", "www", host)).
|
||||
Expect().
|
||||
Status(http.StatusPermanentRedirect).
|
||||
Header("Location").Equal("http://fromtowwwredirect.bar.com/foo")
|
||||
Header("Location").Equal("http://fromtowwwredirect.bar.com:80/foo")
|
||||
})
|
||||
|
||||
ginkgo.It("should redirect from www HTTPS to HTTPS", func() {
|
||||
|
@ -101,7 +101,7 @@ var _ = framework.DescribeAnnotation("from-to-www-redirect", func() {
|
|||
WithHeader("Host", toHost).
|
||||
Expect().
|
||||
Status(http.StatusPermanentRedirect).
|
||||
Header("Location").Equal(fmt.Sprintf("https://%v", fromHost))
|
||||
Header("Location").Equal(fmt.Sprintf("https://%v:443", fromHost))
|
||||
|
||||
ginkgo.By("sending request to domain should not redirect to www")
|
||||
f.HTTPTestClientWithTLSConfig(&tls.Config{
|
||||
|
|
Loading…
Reference in a new issue