From 3b12461265cfa502c83b2f4c7f9ff7825e3e9d35 Mon Sep 17 00:00:00 2001 From: Ricardo Katz Date: Sat, 31 Aug 2024 12:18:52 -0500 Subject: [PATCH] Fix redirection script --- rootfs/etc/nginx/lua/nginx/ngx_srv_redirect.lua | 15 +++++++-------- rootfs/etc/nginx/lua/ngx_conf_init.lua | 1 - test/e2e/annotations/fromtowwwredirect.go | 4 ++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/rootfs/etc/nginx/lua/nginx/ngx_srv_redirect.lua b/rootfs/etc/nginx/lua/nginx/ngx_srv_redirect.lua index 96fdc5c7d..db0a95d7e 100644 --- a/rootfs/etc/nginx/lua/nginx/ngx_srv_redirect.lua +++ b/rootfs/etc/nginx/lua/nginx/ngx_srv_redirect.lua @@ -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) diff --git a/rootfs/etc/nginx/lua/ngx_conf_init.lua b/rootfs/etc/nginx/lua/ngx_conf_init.lua index 6147dbc47..9789386ac 100644 --- a/rootfs/etc/nginx/lua/ngx_conf_init.lua +++ b/rootfs/etc/nginx/lua/ngx_conf_init.lua @@ -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 diff --git a/test/e2e/annotations/fromtowwwredirect.go b/test/e2e/annotations/fromtowwwredirect.go index f578963ed..a3fb3b9b5 100644 --- a/test/e2e/annotations/fromtowwwredirect.go +++ b/test/e2e/annotations/fromtowwwredirect.go @@ -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{