面试题
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的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。
简介 在工程架构领域里,存储是一个非常重要的方向,这个方向从底至上,我分成了...
新兴技术在2020年成为一个热门话题,到2021年的热度仍将持续。 没有人能预料到技...
? 全文 1659 字 3 图,预计阅读时间 10 分钟 香港服务器好不好用,我认为对于每...
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,...
大家好,我是 Redis,一个叫 Antirez 的男人把我带到了这个世界上...... 图片来...
概述 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004...
为什么魂斗罗只有 128KB 却可以实现那么长的剧情?下面来给新生代程序员讲讲这里...
本文转载自微信公众号「 编程珠玑」,转载本文请联系 编程珠玑公众号。 作者:守...
俄罗斯vps哪些内容不能放 ?部分IDC厂商会告诉你俄罗斯vps什么业务、什么内容都...
海外服务器的火热,也让韩国服务器越来越受到许多站长和企业的关注。在海外服务...