当一台服务器的访问量越大时,服务器所承受的压力也就越大,超出自身所指定的访问压力就会崩掉,避免发生此类事情的发生,因此也就有了负载均衡来分担服务器的压力。 那么究竟什么是负载均衡呢?通俗些讲,就是我们有几十台、几百台甚至更多服务器,将这些服务器组成一个服务器集群,当客户端访问某台设备的数据时,首先发送的请求先到一台中间服务器,并通过中间服务器在服务器集群中平均分摊到其他服务器中,因此,当用户每次所发送的请求都将会保证服务器集群中的设备均与平摊,以此来分担服务器的压力,从而保持服务器集群的整理性能最优,避免出现有崩溃的现象。
二、Nginx负载均衡的作用转发功能:Nginx 会按照一定的算法轮询、权重将客户端发来的请求转发至不同的应用服务器上,同时减轻单台服务器的压力,提高服务器的并发量;故障迁移:当一台服务器出现了故障时,客户端发来的请求将自动发送到其他服务器; * 添加恢复:当故障服务器恢复正常工作时,将自动添加到处理用户请求中;三、Nginx负载均衡的几种策略方式1)轮询(默认) 客户端发出的每个请求将按照时间顺序逐一分配到不同的后端服务器,如后端服务器down掉,能自动剔除。
upstream backserver { server 192.168.1.10; server 192.168.1.11; }2)weight
weight 代表权重,默认为1,权重越高被分配的客户端也就越多。 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况,也就是说:哪个 server 的连接数少,路由就到哪个 server 中去。
upstream backserver { server 192.168.1.10 weight=3; server 192.168.1.11 weight=7;}3)ip_hash
每个请求按访问 IP 的hash结果分配,每个访客固定访问一个后端服务器,可解决session的问题。
upstream backserver { ip_hash; server 192.168.1.10:80; server 192.168.1.11:88; }4)fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver { server server1; server server2; fair; }5)url_hash(第三方) 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; }这里推荐大家可以看看Linux C/C 高级开发架构的【免费】课程:C/C Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂
课程内容的话和腾讯C 后台开发T8职级技术栈对标,围绕数据结构与算法、数据库、网络、操作系统、网络编程、分布式架构等方面全面提升,值得学习一波~资料免费领取地址:
制图网(www.makepic.net),专业的logo免费设计在线生成网站,全自动智能化logo设计,商标设计,logo在线生成!
欢迎使用制图网制作属于您公司自己的logo,不仅专业而且经济实惠,全方位满足您公司品牌化、视觉化的需求。