我们有:
Ubuntu 16.04
nginx 1.10.3
我是nginx的新手,需要proxy_pass到https的帮助。
我们的客户在互联网上,他们以网址为例。
player
我想将此流量通过IP地址192.168.0.10传递到我的服务器。 在此服务器上,我已启用ssl侦听端口9443。
我们要使用nginx作为reverse_proxy。 我的nginx配置看起来像这样。
https://testapp.mobios.example.com
如果客户端尝试使用https://testapp.mobios.example.com与ssl服务器联系,他们将一无所获。
我需要的只是将https传递给https。 SNI在这里有问题吗?
有什么主意吗? 请帮忙 阿约拉第
答案 0 :(得分:2)
我为客户做了一次。您要做的就是启用Nginx并在SSL中安装SSL,而不是在要代理的服务器上安装。
答案 1 :(得分:1)
不是完全一样,而是类似的问题将我带到了这里。
HTTPS的负载均衡:
Client <- HTTPS -> (decrypt) Load balancer (encrypt) <- HTTPS -> Server
通常,thisisayush答案(http://reinout.vanrees.org/weblog/2017/05/02/https-behind-proxy.html)非常好,它可以部分解决我的问题,但是增加负载平衡会使Google的搜索工作更加困难。
制作上游列表时,您必须记住有关添加443
端口的信息。
不工作:
upstream myapp2 {
server 10.0.1.1;
}
工作:
upstream myapp2 {
server 10.0.1.1:443;
}
即使您使用location
https
协议(我希望默认将其指向443
),也是如此:
location / {
proxy_pass https://myapp2;
}
完整示例:
http {
upstream myapp2 {
server 10.0.1.1:443;
}
server {
listen 443;
ssl_certificate /etc/nginx/cert.crt;
ssl_certificate_key /etc/nginx/cert.key;
ssl on;
location / {
proxy_pass https://myapp2;
}
}
}
答案基于我最终在thisisayush评论的帮助下找到的文档: