0
我試圖使用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的容器返回
任何想法?
你是什麼意思'沒有正確翻譯?哦 - 你可能會嘗試添加'X-Forwarded-Proto',你的應用程序需要相信它..也許相關:https://forums.iis.net/t/1178094.aspx?Rewriting+HTTPS+variable+based+ on + value + of + X + Forwarded + Proto – gusto2
如果有幫助,你可以試試這個:https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion – Evis