我想将某个域的https请求代理到另一个地址:
server {
server_name site1;
listen 443;
ssl on;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://172.17.0.1:44110;
}
}
Nginx抱怨道:
nginx: [emerg] no "ssl_certificate" is defined for the "ssl" directive in /etc/nginx/nginx.conf:33
关键是证书实际上在代理服务器上。
如何告诉nginx不终止ssl层,只是将其代理到配置的URL?
我正在寻找的内容类似于this,但支持server_name
。
答案 0 :(得分:0)
答案 1 :(得分:0)
据我所知,NGINX中你不想做什么。我实际上已经写出了一个答案,结果证明你重复了你提供给另一个StackOverflow答案的链接。如果你考虑你在问什么,那么NGINX能够在中间进行客户端浏览器和你的源之间的通信是有效的。我不认为你真的希望这是可能的,因为它会使SSL / TLS毫无用处。
您需要执行链接的StackOverflow应答对stream
模块执行的操作,或者您需要移动证书以由NGINX托管。
Cloudflare创建了"Keyless" SSL,允许将私有材料托管在其他地方,但只有它的原始端是开源的。您必须修改NGINX才能实现协议的代理端,尽管也许其他人也已经这样做了。这可能对您的需求有些过分。