基于sni的https负载均衡

ssl(会话层)的负载均衡介于http(应用层)负载均衡和tcp(传输层)负载均衡之间;

对于tcp(传输层)的负载均衡只能基于端口来做,访问同一个端口的请求就意味着转发到相同的后端服务器;

而对于http(应用层)的负载均衡可以介于应用层的很多东西来做,如:host、sessionid等;

对于https来讲,一般会将https证书放在负载均衡服务器上,对应用层数据解包之后再负载均衡;如果负载均衡不在自己管辖范围(亦或是处于别的原因考虑,如: 性能)而不想将证书放在负载均衡上,如何让一个负载均衡服务于多个服务呢?

这时候就可以考虑,通过sni来解析到servername之后,直接将请求通过tcp的方式转发到指定的服务,这样不需要对数据包进行解密操作,提高了性能,也更不需要将对应的证书放在负载均衡上了。

举个栗子: http://blog.haproxy.com/2012/04/13/enhanced-ssl-load-balancing-with-server-name-indication-sni-tls-extension/

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据