Nginx请求端口

我有一个启用了SSL的nginx服务器。 由于它在不同的端口(比443)运行,有时它接收纯HTTP请求,而不是HTTPS。 我想设置一个redirect,自动replacescheme,我试过这个代码:

error_page 497 https://$host:$server_port$request_uri; 

但是这里的问题是,当服务器在虚拟机中运行并且端口被转发到不同的端口时,它将redirect到无效端口(服务器从中获取请求)。

我的问题是:我怎么能parsing/从端口请求而不是端口从服务器收到请求?

这个问题几乎是这个问题的重复:

如何将端口80上的非HTTP请求转发到另一个端口?

在那里,他们在端口80上收到非HTTP请求,在端口443上获得非HTTPS请求。 除此之外,这个想法是一样的。

Nginx模块存在与TCP数据包做更多的事情:

http://nginx.org/en/docs/stream/ngx_stream_core_module.html

https://github.com/yaoweibin/nginx_tcp_proxy_module