nginx stream模块的ssl_preread on详解
时间: 2024-02-12 09:03:18 浏览: 461
ngx_stream_ssl_preread_module调研.docx
nginx stream模块的ssl_preread指令是用来实现TLS SNI(Server Name Indication)代理的功能。它的作用是在TLS握手之前,解析客户端发送的Client Hello消息,提取出其中的Server Name,并根据Server Name的值来决定将该连接转发到哪个后端服务器。
具体地说,当ssl_preread指令设置为on时,nginx会在接收到客户端的TLS握手请求时,尝试解析其中的Server Name信息。如果成功解析,则会将请求转发到后端服务器,而不是直接将请求传递给后端服务器,从而提高了代理服务器的效率。
需要注意的是,如果客户端发送的TLS握手请求中没有包含Server Name信息,或者Server Name信息无法被解析,那么nginx将无法确定该请求应该转发到哪个后端服务器,这种情况下,nginx会将请求转发到默认的后端服务器,或者直接返回错误信息给客户端。
总之,nginx stream模块的ssl_preread指令是实现TLS SNI代理的重要工具,通过它,我们可以轻松地将同一个代理服务器上收到的不同域名的TLS请求转发到不同的后端服务器上,从而实现更加高效灵活的反向代理服务。
阅读全文