Docker-compose + Nginx SSL反向代理

我试图使用Nginx设置反向代理,它也会为后端服务提供https。Docker-compose + Nginx SSL反向代理

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

码头集装箱似乎运作良好,直到香港专业教育学院设置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请求,生病用https://localhost:8080时,它会返回ERR_SSL_PROTOCOL_ERROR拿回502网关错误。

在终端中,nginx的容器返回

任何想法?

回答:

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

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;

}

}

}

以上是 Docker-compose + Nginx SSL反向代理 的全部内容, 来源链接: utcz.com/qa/263619.html

回到顶部