负载均衡
个人理解:
如果我们只有一台服务器,这样的话如果我们的服务器被黑掉,就会导致我们的网站无法继续服务,这样我们就要用多台服务器搭建我们的网络结构,这样就用到了负载均衡。
负载均衡是一种服务器或网络设备的集群技术,将特定的业务分担给多个服务器或网络设备,从而提高业务的处理能力,保证业务的高可用性。
这样我们就用到了nginx,因为nginx不仅可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态,静态页面分离。可以按照轮询,ip哈希,URL哈希,权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。
负载均衡原理
用户通过浏览器向我们的负载均衡服务器(反向代理服务器)发送请求,负载均衡通过我们给定的方式分配用户的请求给我们的web服务器。
负载均衡分发请求的几种方式:
1)轮询
每个请求按时间顺序逐一分配到不同的服务器,如果后端服务器down掉,能自动剔除,最终选择的几率为相同的,这种方式适合,后端服务器配置均衡的情况
2)权重(weight)
指定轮询几率,权重和访问几率成正比,所以又称为(加权轮询),适合后台服务器性能不均的情况。
3) ip_hash
根据每个请求用户ip的hash的结果进行分配,这样每个用户访问的后端的服务器是固定的,这样就可以有效的解决session无法访问的问题,弊端就是一旦当前服务器down,这台服务器上的用户就无法提供服务了
4) fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配
5) url_hash(第三方)
按用户访问的URL地址hash的结果分配请求,可以使每个url定向到同一个后端服务器,这种方式后台服务器为缓存时比较适合