nginxredirect没有端口

我有一个Nginx的301redirect问题。 它总是通过本地端口redirect到一个URL。

情况如下:网站正在运行Cloudflare,完整的https。 CF将http请求发送到varnish接受它们的服务器。 清漆然后将请求传递给nginx,它与FPM一起处理其余部分。

Nginx运行在8080端口。我在Nginx中创build一个301redirect,就像我通常做的那样:

location = /url1 { return 301 /url2; } 

Nginx然后redirect到URL,但是添加它运行的原始主机名和端口(8080)。 所以我将port_in_redirect设置为在服务器configuration中closures。 那工作一半。 它会将一个http URLredirect到https(不提到端口8080)。 它会redirect一个https URL到http,虽然,循环。

我怎样才能确保这不会发生? 我想知道是否有可能知道Cloudflare也在为请求提供服务。