https握手
客户端的TLS解析服务器发来的CA证书,先验证公钥是否有效,如颁发机构、是否过期等,有问题则提示证书存在问题;没有问题就生成一个对称加密密钥,然后用公钥对该密钥进行非对称加密发给服务器,服务端则用自己的非对称私钥解开收到的对称加密密钥,以后客户端和服务端的通信就可以通过这个密钥来进行加密解密。
非对称加密公钥和私钥的使用:1)公钥加密私钥解密。2)私钥做数字签名、公钥验证。
http和https的区别?
http是超文本传输协议,信息数据是明文传输,端口是80,连接很简单,是无状态的;
https协议时由SSL+HTTP协议构建的可进行加密传输、身份验证的网络协议,比HTTP协议安全,可防止数据在传输过程中被窃取、修改,确保数据的完整性。端口时443。需要用到CA申请证书且需要一定费用。
(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)
https的缺点:
- SSL证书是收费的,而且功能越强的证书越贵
- SSL会延长页面的加载时间,协议握手阶段耗时,有统计延长大概50%
- https在缓存方面不如http
- https会占用更多服务器的连接资源
- https在面对黑客攻击、Dos拒绝服务攻击等方面也没啥作用
高可用:两台业务系统启动着相同的服务,如果有一台故障,另一台自动接管,我们将这个称之为高可用;
keepalived
简介:起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,健康检查和失败切换是keepalived的两大核心功能,部署简单
工作原理:通过vrrp协议实现
工作方式:抢占式(配置主备参数)、非抢占式(不再区分主从全为backup,参数为nopreempt)
vrrp:虚拟路由冗余协议,当master故障后,vip和vmac地址自动漂移到backup,(master和backup每隔1s向组播地址发送数据检测主备是否存活)这时会通知下端主机刷新arp表。
实现思路:将keepalived中的vip作为nginx负载均衡的监听地址,并且域名绑定的也是vip,nginx负载均衡实现高可用需要借助keepalived地址漂移功能。
脑裂现象:两台keepalived在指定时间内无法检测对方存活,从而导致互相抢占对方的资源和服务所有权,然而此时两台高可用服务器都还存活。解决办法是脚本检测如果当前的nginx挂掉那么就kill掉这上面的keepalived。