千锋扣丁学堂Linux培训之Nginx负载均衡的算法怎么实现的
2019-06-17 14:46:19
206浏览
今天千锋扣丁学堂Linux培训老师给大家分享一篇关于Nginx负载均衡的算法怎么实现的?为什么要做动静分离的全部内容?下面我们一起来看一下吧。
面试题:Nginx负载均衡的算法怎么实现的?Nginx有哪些负载均衡策略?Nginx为什么要做动静分离?
面试官心理剖析
主要是看应聘人员对Nginx的基本原理是否熟悉,需要应聘人员能够根据实际业务场景选择合适的负载均衡(转发)策略。其次,在网站建设上,了解Nginx的优劣势,能够找到弥补其不足的方法,使得企业的业务达到最佳访问状态。
Nginx
问题剖析
1、Nginx负载均衡的算法怎么实现的?策略有哪些?
负载均衡是Nginx常用的一个功能,当一台服务器在单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。
为了避免服务器崩溃,大家会通过负载均衡的方式来分担服务器压力。将对台服务器组成一个集群,当用户访问时,先访问到一个转发服务器,再由转发服务器将访问分发到压力更小的服务器。
Nginx负载均衡实现的策略有以下五种:
(1)轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某个服务器宕机,能自动剔除故障系统。
upstream backserver {
server 192.168.0.12;
server 192.168.0.13;
}
(2)权重weight
weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。其次是为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。
upstream backserver {
server 192.168.0.12 weight=2;
server 192.168.0.13 weight=8;
}
权重越高,在被访问的概率越大,如上例,分别是20%,80%。
(3)ip_hash(IP绑定)
每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题
upstream backserver {
ip_hash;
server 192.168.0.12:88;
server 192.168.0.13:80;
}
(4)fair(第三方插件)
必须安装upstream_fair模块。
对比weight、ip_hash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}
哪个服务器的响应速度快,就将请求分配到那个服务器上。
(5)url_hash(第三方插件)
必须安装Nginx的hash软件包
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率。
upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
2、为什么要做动静分离?
Nginx是当下最热的Web容器,网站优化的重要点在于静态化网站,网站静态化的关键点则是是动静分离,动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们则根据静态资源的特点将其做缓存操作。
让静态的资源只走静态资源服务器,动态的走动态的服务器
Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。
对于静态资源比如图片,js,css等文件,我们则在反向代理服务器nginx中进行缓存。这样浏览器在请求一个静态资源时,代理服务器nginx就可以直接处理,无需将请求转发给后端服务器tomcat。
若用户请求的动态文件,比如servlet,jsp则转发给Tomcat服务器处理,从而实现动静分离。这也是反向代理服务器的一个重要的作用。
以上就是关于千锋扣丁学堂Linux培训之Nginx负载均衡的算法怎么实现的全部内容,
想要学好Linux开发小编给大家推荐口碑良好的扣丁学堂,扣丁学堂有专业老师制定的Linux学习路线图辅助学员学习,此外还有与时俱进的Linux课程体系和Linux视频教程供大家学习,想要学好Linux开发技术的小伙伴快快行动吧。扣丁学堂Linux技术交流群:422345477。
【关注微信公众号获取更多学习资料】 【扫码进入HTML5前端开发VIP免费公开课】
查看更多关于“Linux培训资讯”的相关文章>>
标签:
Linux培训
Linux视频教程
红帽Linux视频
Linux学习视频
Linux入门视频