【问题标题】:Docker-compose + Nginx SSL Reverse proxyDocker-compose + Nginx SSL 反向代理
【发布时间】:2018-05-31 20:18:45
【问题描述】:

我正在尝试使用 Nginx 设置反向代理,该代理也将为后端服务提供 https。

我有 3 个容器,一个用于 mongodb,一个用于我的 .NET 核心后端应用程序,一个用于反向代理。

Docker 容器似乎运行良好,在我设置 HTTPS 之前它运行良好。

问题是来自https://localhost:8080 的请求未正确转换为在 http 端口上运行的 .NET 核心应用程序。

问题出在我的 Nginx conf 文件中,但我不确定如何解决。

    worker_processes 1;

events { worker_connections 1024; }

http {

    sendfile on;

    upstream web {
        server web:443;
    }

    server {
        listen 8080;

        location /upstream {
            proxy_pass         https://web;
            proxy_ssl_certificate     /etc/nginx/cert.pem;
            proxy_ssl_certificate_key /etc/nginx/privkey.pem;
            proxy_ssl_session_reuse on;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
        }
    }

    server {
        listen 443 ssl;

        ssl_certificate_key    /etc/nginx/privkey.pem;
        ssl_client_certificate /etc/nginx/cert.pem;
        ssl_verify_client      off;

        location / {
            proxy_pass http://web;
        }
    }
}

当我做 HTTP 请求时,我会返回 502 Bad gateway 错误,当使用 https://localhost:8080 时它会返回 ERR_SSL_PROTOCOL_ERROR。

在终端,nginx容器返回

有什么想法吗?

【问题讨论】:

  • are not translated properly 是什么意思?哦 - 您可以尝试添加 X-Forwarded-Proto 并且您的应用程序需要信任它.. 可能相关:forums.iis.net/t/…
  • 如果有帮助,你可以试试这个:github.com/evertramos/…

标签: ssl nginx proxy docker-compose


【解决方案1】:

在阅读了一些文档后,我找到了解决方案。

    worker_processes 1;

events { worker_connections 1024; }

http {

    sendfile on;

    upstream web {
        server web:80;
    }

    server {
        listen 8080 ssl;

        ssl_certificate         /etc/nginx/cert.pem;
        ssl_certificate_key     /etc/nginx/privkey.pem;

        location / {
            proxy_pass         http://web;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
            proxy_set_header   X-NginX-Proxy true;
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 2023-04-05
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多