NGINX 是否可以像 HAProxy(等)那样检查 TLS 请求以查找 SNI?

Mor*_*eu5 2 nginx https haproxy tls sni

似乎在为 HTTPS 连接上的主机名路由配置 HAProxy 时,包含一个tcp-request inspect-delay指令“让 HAProxy 有机会查看连接”至关重要。有没有办法让 NGINX 达到同样的效果,还是我应该开始打包并将我的整个服务器移动到 HAProxy?

(作为参考,这个问题来自我之前在这里表达的误解)

编辑

迈克尔,在评论中:

他似乎想在不实际终止 TLS 连接的情况下从客户端的握手尝试中“嗅探”SNI,以便做出下层连接代理决策,并盲目地将有效负载传送到后续机器以终止 TLS,因为对于出于某种原因,他不希望代理上的 TLS 证书和密钥,或者让代理根本不执行 TLS——只需嗅探 SNI 并使用从其内容派生的规则建立向内 TCP 连接。

理由是我需要后端应用程序中的证书和密钥(有些出于某种原因需要这样做),所以我必须向他们提供这些。必须在代理中设置它们本质上会使维护工作和出错的机会加倍。如果我可以不维护对代理的证书的访问权限,这将使我的架构更容易,并减少出错的机会。

Jam*_*mie 5

ngx_stream_ssl_preread_module模块从 Nginx 1.11.5 开始可用,似乎就是这样做的。

它允许ClientHello通过$ssl_preread_server_name变量访问在客户端消息中找到的 SNI 服务器名称。

此信息可用于将 TCP(“流”)连接路由到后端。该模块的文档提供了如何执行此操作的示例。