Docker-compose + Nginx SSL反向代理

问题描述 投票:1回答:1

我试图使用Nginx设置反向代理,它也将为后端服务提供https。

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

Docker容器似乎运行良好,直到我设置HTTPS它运行良好。

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

问题出在我的Nginx配置文件中,但我不知道如何解决它。

    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容器返回

enter image description here

有任何想法吗?

ssl nginx proxy docker-compose
1个回答
2
投票

通过文档阅读后,我已经找到了解决方案。

    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;
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.