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

问题描述 投票:0回答:2

上下文

设置简单

  • 一个docker容器,将8090暴露为一个网站(节点,快递)
  • 一个nginx conf暴露80并将其映射到localhost 8090

问题

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

我尝试过重定向,重写,下面是一个简单的听...但没有成功。浏览器将返回'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$1 permanent;
 }
docker nginx nginx-reverse-proxy
2个回答
1
投票

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

致@RichardSmith的积分


0
投票

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

stream {
    server {
        listen 443;
        proxy_pass 127.0.0.1:80;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.