反向代理重定向流量 ssl “ex: openvpn”

反向代理重定向流量 ssl “ex: openvpn”

使用 netscaler,我可以将所有流量 SSL 重定向到取决于其子域的特定主机。

例子:

                                             +-------------+
                                   +-------> |webserver 443|
                                   |         +-------------+
+----------+        +--------------+       www.example.com:443
| internet | +----> | reverseproxy |
+----------+        +--------------+
                                   |         +-----------+
                                   +-------> |openvpn 443|
                                             +-----------+
                                          vpn.example.com:443

由于我们没有在 Netscaler 上配置任何证书,因此流量只是重定向,并未解密。我们只有一个用于反向代理的证书“通配符”。

我想说的是,我还没有配置 NetScaler。因此,我的配置可能错了。

问题:

  1. 我想知道是否可以使用 Nginx 或 Squid 等开源软件实现同样的功能?
  2. 这个配置如何工作?

答案1

在 nginx 上做这件事相当简单。为域(或每个域)定义一个服务器,设置位置以告诉它什么映射到哪里,并使用 proxy_pass 将请求传递到正确的后端服务器。我相信这正是 nginx 的设计目的。

在这种情况下,由于其中一个位于子域中,因此您可以定义两个服务器,并且每个服务器可能只有一个位置,一个位置将所有内容传递出去。如果您想直接从 nginx 提供静态资源,您可以这样做,这可能稍快一些,但可能需要更多努力。

阅读Nginx 作为反向代理

答案2

你也可以用 来实现这一点haproxy。示例配置片段:

use_backend server1 if { ssl_fc_sni_reg ^domain1\.com$ }

如果在 SSL 握手期间客户端使用 SNI 来表明它正在与 对话domain1.com,则这会将流量代理到 server1。

相关内容