集群的概念
所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。
简而言之,由一台服务器提供服务变成多台服务器提供服务,这多台服务器提供的服务是一致的,那么我们就把这多台服务器组成一个集群。
那么,当客户端向服务器发送请求时,会使用哪一台服务器呢,是负载均衡服务器
负载均衡
负载均衡服务器位于客户端和集群之间,客户端的请求都先经由负载均衡服务器,再由负载均衡服务器根据算法策略向集群中的某一台服务器发送当前请求。
负载均衡分类
- 二层负载均衡(mac)
根据OSI模型分的二层负载,一般是用虚拟mac地址方式,外部对虚拟MAC地址
请求,负载均衡接收后分配后端实际的MAC地址响应) - 三层负载均衡(ip)
一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后端 实际的IP地址响应) - 四层负载均衡(tcp)
在三次负载均衡的基础上,用ip+port接收请求,再转发到对应的机器。 - 七层负载均衡(http)
根据虚拟的url或IP,主机名接收请求,再转向相应的处理服务器。
其中,最为常见的是四层和七层
nginx
Nginx是高性能的HTTP和反向代理的web服务器,并发能力强,占用内存少
nginx的五大能力
-
Web服务器
nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比
如perl、php等。 -
正向代理
nginx可以作为正向代理服务器,比如代理上网。
客户端能够知道代理服务器的存在,这种代理行为称为正向代理 -
反向代理
反向代理,即客户端对代理是无感知的,因为客户端不需要任何配置就可以
访问 -
负载均衡
nginx能作为反向代理服务器实现负载均衡功能。
nginx的负载均衡策略
轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
权重
weight 代表权重, 默认为1,权重越高被分配的客户端越多。
ip_hash
ip_hash每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。
fair(第三方)
fair(第三方),按后端服务器的响应时间来分配请求,响应时间短的优先分配。