负载均衡之SSL Farm

SSL Farm

  

在上面的讲解中,我们忽略了一个事情,那就是L7负载平衡服务器对于SSL的支持。在L7负载平衡服务器中,我们常常需要读写请求及响应中的Cookie。但是如果通讯使用的是SSL连接,那么L7负载平衡服务器将无法对请求及响应的内容进行读写操作。

  

解决该问题所曾经使用的一个解决方案就是:将负载平衡服务器以反向代理的方式使用。在这种方案中,负载平衡服务器将拥有服务的证书,并可以通过证书中的密钥对请求进行解密。解密完成后,负载平衡服务器就可以开始尝试读取Cookie中的内容并根据其所记录的信息决定该请求所需要派发到的服务实例。在对该请求进行派发的时候,负载平衡服务器可以不再使用SSL连接,进而使得各个服务实例不再需要再次解密请求,提高服务实例的运行效率。

  

在请求处理完毕之后,服务实例将通过服务实例与负载平衡服务器的非SSL连接返回一个响应。在负载平衡服务器接收到该响应之后,其将会把该响应加密并通过SSL连接发出:

但是这样做的问题在于,如果所有对SSL的处理都集中在L7负载平衡服务器上,那么它将会变成系统的瓶颈。绕过该问题的方法就是在L7负载平衡服务器之前使用一系列反向代理来负责SSL的编解码操作。

  

此时整个系统的架构将呈现如下的层次结构:

从上图中可以看到,整个解决方案分为了四层。在用户的请求到达了第一层的负载平衡服务器时,其将会把该请求根据自身的负载平衡算法转发给处于第二层的专门负责SSL编解码工作的反向代理。该代理会将传入的由SSL连接所传输的请求由非SSL连接传出。在请求到达第三层时,L7负载平衡服务器可以直接访问这些请求所包含的Cookie,并根据Cookie中的内容决定需要处理该请求的服务实例。

  

这么做的好处有很多。首先就是这些反向代理非常便宜,甚至只有常见负载平衡服务器的1/20左右的价格,却在处理SSL连接上拥有几乎相同的效率。除此之外,这些反向代理还提供了非常良好的扩展性和高可用性。一旦负载平衡系统在处理SSL连接的能力上显得有些吃力,我们就随时可以向系统中添加新的反向代理。而一旦其中一个反向代理失效,那么其它反向代理可以通过多承担一些负载来保证系统的安全运行。

时间: 2024-10-27 19:09:56

负载均衡之SSL Farm的相关文章

五十、Nginx负载均衡、SSL原理、生成SSL密钥对、Nginx配置SSL

五十.Nginx负载均衡.ssl原理.生成ssl密钥对.Nginx配置ssl 一.Nginx负载均衡 代理一台机器叫代理,代理两台机器就可以叫负载均衡. 代理服务器后有多个web服务器提供服务的时候,就可以实现负载均衡的功能. dig命令:解析域名的IP.常用的域名查询工具,可以用来测试域名系统工作是否正常,可以反馈多个IP. 需要安装这个包:# yum install -y bind-utils # dig qq.com ; <<>> DiG 9.9.4-RedHat-9.9.4

linux的Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl介绍

Nginx的负载均衡 1. 查找www.qq.com域名对应IP做测试 [[email protected] ~]# yum install -y bind-utils //安装dig命令包 [[email protected] ~]# dig www.qq.com ; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7_4.1 <<>> www.qq.com ;; global options: +cmd ;; Got answer: ;

Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl

Nginx负载均衡 Nginx负载均衡即为当代理服务器将自定义的域名解析到多个指定IP时,通过upstream来保证用户可以通过代理服务器正常访问各个IP. 代理一台机器叫做代理,代理两台及两台服务器就能叫做负载均衡. 负载均衡配置 创建一个配置文件/usr/local/nginx/conf/vhost/load.con [[email protected] ~]# vim /usr/local/nginx/conf/vhost/load.conf upstream qq.com #借助upst

LNMP(Nginx负载均衡,SSL原理,Nginx配置SSL,生产SSL密钥对)

一.Nginx负载均衡 负载均衡:单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况.那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可. 在开始部署负载均衡之前,我们先来介绍一个命令,dig命令需要yum安装一下 [[email protected] ~]# yum install bind-utils [[email protected] ~]# dig qq.com            (dig后加域名,他可以返回2个

Nginx配置:负载均衡和SSL配置

一.负载均衡 负载均衡在服务端开发中算是一个比较重要的特性.因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理前端,因为Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就可以分发给后台服务端(backend servers,也叫做服务池, 后面简称backend)来做复杂的计算.处理和响应,这种模式的好处是相当多的:隐藏业务主机更安全,节约了公网IP地址,并且在业务量增加的时候可以方便地扩容后台服务器.负载均衡可以分为硬件负载均衡和软件负载均衡,前者一

2018-3-16 12周5次课 Nginx负载均衡、ssl原理、秘钥、配置

12.17 Nginx负载均衡 在upstream下定义多个ip 如何查到网站解析的ip?--使用dig命令 需要安装bind-utils [[email protected] ~]# yum install -y bind-utils (过程省略) [[email protected] ~]# dig qq.com (这是网站的两台服务器ip) [[email protected] vhost]# vim ld.conf ip_hash 网站有两台服务器提供服务,想让始终访问一台服务器,用ip

93.Nginx配置:负载均衡和SSL配置

一.负载均衡 负载均衡在服务端开发中算是一个比较重要的特性.因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理前端,因为Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就可以分发给后台服务端(backend servers,也叫做服务池, 后面简称backend)来做复杂的计算.处理和响应,这种模式的好处是相当多的:隐藏业务主机更安全,节约了公网IP地址,并且在业务量增加的时候可以方便地扩容后台服务器. 负载均衡可以分为硬件负载均衡和软件负载均衡,前者

Nginx负载均衡,ssl原理,生成ssl密钥对,Nginx配置ssl

Nginx负载均衡负载均衡就是:将本应该这台机器(或集群)要处理的请求(工作或负载),根据一定的算法,平均地分配到其他的机器(或集群)上去处理,这样可以大大减少这台机器(或集群)的工作量,防止因负载过大而造成响应超时或down机等意外情况的发生.一般大的网站和系统都使用了负载均衡!首先进入/usr/local/nginx/conf/vhost/目录下然后编辑文件 vim /usr/local/nginx/conf/vhost/load.conf然后加入下列配置upstream qq_com{ip

50.Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl

一.Nginx负载均衡 dig www.qq.com curl -x127.0.0.1:80 www.qq.com vim /usr/local/nginx/conf/vhost/load.conf // 写入如下内容 upstream qq_com //随便起个名字 { ip_hash; //让同一个用户始终保持在同一个ip上 server 125.39.240.113:80; server 61.135.157.156:80; } server { listen 80; server_nam