看起来,在HTTPS连接上configurationHAProxy进行主机名路由时,至关重要的是包含一个tcp-request inspect-delay指令来“让HAProxy有机会查看连接”。 有没有办法让NGINX一样,或者我应该开始打包,并将我的整个服务器移动到HAProxy?
(作为参考,这个问题来自我此前expression的误解)
编辑
迈克尔在评论中说:
他似乎希望从客户端的握手尝试中“嗅探”SNI,而不实际终止TLS连接,以便作出低层的连接代理决定,并盲目地将有效载荷传送到后续的terminal机,以终止TLS,因为某些原因,他不希望代理上的TLS证书和密钥,或代理完成TLS – 只需嗅探SNI,并使用从其内容派生的规则build立内部TCP连接。
理由是我需要后端应用程序中的证书和密钥(有些需要这个或那个原因),所以我必须提供给他们。 不得不在代理中设置它们本质上是维护工作的两倍,并且有可能出现错误。 如果我不能保持对代理证书的访问,就会使我的架构变得更容易,并减less错误的机会。
ngx_stream_ssl_preread_module模块从Nginx 1.11.5开始可用,似乎是这样做的。
它允许通过$ssl_preread_server_namevariables访问在客户端的ClientHello消息中find的SNI服务器名称。
该信息可用于将TCP(“stream”)连接路由到后端。 该模块的文档提供了一个如何做到这一点的例子。