Nginx 重定向 https->http(反向代理)->端口(docker容器)

Nginx redirect https->http(reverse proxy)->port(docker container)

上下文

设置简单

问题

我没有付费的 SSL 证书,我希望尝试访问 https 的最终用户被重定向到 http。

我试过重定向、重写,下面是一个简单的监听……但没有成功。浏览器会 return 'ERR_SSL_PROTOCOL_ERROR'.

server {
    listen 80;
    listen 443;
    ssl off;
    server_name xxxx.com;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://0.0.0.0:8090";
    }
 }

问题

您能否建议重定向 https->http(反向代理)的最简洁方法?此致

编辑 1

以下配置会生成浏览器 "ERR_SSL_PROTOCOL_ERROR"。

server {
    listen 80;

    server_name xxxx.com;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://0.0.0.0:8090";
    }
 }


server {
       listen 443;
       server_name xxxx.com;
       rewrite ^(.*) http://$host permanent;
 }

使用 letsencrypt 获取免费证书,然后使用 https 或重定向到 http 是我的解决方案。

感谢@RichardSmith

您可以通过ngx_stream_core_module尝试使用TCP restreaming http://nginx.org/en/docs/stream/ngx_stream_core_module.html

stream {
    server {
        listen 443;
        proxy_pass 127.0.0.1:80;
    }
}