Nginx proxy_pass到https

时间:2018-08-15 12:30:00

标签: nginx reverse-proxy

我们有: 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在这里有问题吗?

有什么主意吗? 请帮忙 阿约拉第

2 个答案:

答案 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评论的帮助下找到的文档:

https://docs.nginx.com/nginx/admin-guide/security-controls/securing-http-traffic-upstream/#complete-example