会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 面试官最爱问:Nginx 怎么实现负载均衡?哪几种策略最常用?!

面试官最爱问:Nginx 怎么实现负载均衡?哪几种策略最常用?

时间:2025-11-05 04:09:27 来源:益强数据堂 作者:数据库 阅读:747次

今天分享一个常见的面试面试题:“Nginx 是如何做负载均衡的?常见策略有哪些?有什么区别?”

别小看这个问题,它几乎是官最大厂面试 运维 的必考题。下面就展开详细讲解一下。爱问

1. 什么是现负负载均衡?

一句话概括:把用户的请求分摊到多台服务器上,提高系统并发能力和稳定性。载均最常

没有负载均衡时:

全部流量打到一台服务器,衡种可能会“爆掉”;一台挂了,策略整个服务就宕机。面试

有了负载均衡:

请求被智能分配到多台机器,官最性能提升;单机宕机,爱问其他机器继续扛流量,现负系统更稳。载均最常

而 Nginx 就是衡种最常用的 七层(应用层)负载均衡器。

2. Nginx 怎么实现负载均衡?策略

Nginx 的负载均衡主要通过 upstream 模块 实现,需要配合proxy_pass使用,面试。

核心配置长这样:

复制http { upstream backend { server 10.0.0.101:8089; server 10.0.0.102:8089; server 10.0.0.103:8089; } server { listen 80; location / { proxy_pass http://backend; } } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.

上面配置的意思是:

定义了一个 backend 集群,包含三台服务器;用户请求访问 80 端口时,Nginx 会按照一定策略分配到这几台机器上。3. Nginx 常见负载均衡策略

Nginx 提供了多种 调度算法(分配策略),我这里讲几个常用并且比较重要的。IT技术网

可以参考官网的:https://nginx.org/en/docs/http/load_balancing.html

(1) 轮询(默认)

配置:直接写 server,不加任何参数。规则:按照顺序一个一个分配,平均分流。特点:简单、常用,适合请求压力差不多的场景。

(2) 加权轮询(weight)

配置:

复制upstream backend { server 10.0.0.101:8089 weight=3; server 10.0.0.102:8089 weight=1; }1.2.3.4. 规则:权重越高,分到的请求越多。应用场景:某些机器性能更强,就给它更高权重。

(3) IP 哈希(ip_hash)

配置:

复制upstream backend { ip_hash; server 10.0.0.101:8089; server 10.0.0.102:8089; }1.2.3.4.5. 规则:根据客户端 IP 计算 hash,固定分配到某一台服务器。优点:能保持“会话粘性”(用户 A 每次都打到同一台机器)。缺点:一台机器宕机后,hash 可能失效,用户会断开,清除缓存后会重新分配可用节点。

(4) 最少连接(least_conn)

配置:

复制upstream backend { least_conn; server 10.0.0.101:8089; server 10.0.0.102:8089; }1.2.3.4.5. 规则:优先把请求分给当前连接数最少的机器。应用场景:请求处理耗时差别较大时更公平。

(5) 随机(Random)

配置:

复制upstream backend { random; server 10.0.0.101:8089; server 10.0.0.102:8089; }1.2.3.4.5.

规则:随机分配。

增强版:

复制random two least_conn;1.

表示从两台随机机器里选连接数少的。

应用场景:避免热点倾斜,简单有效。

(6) 哈希(Hash)

配置:

复制upstream backend { hash $request_uri consistent; server 10.0.0.101:8089; server 10.0.0.102:8089; }1.2.3.4.5. 规则:对任意 key(比如 URI、用户 ID、cookie)做哈希。应用场景:一致性 hash,免费源码下载适合分布式缓存。比 ip_hash 更灵活。

(7)  fair(第三方模块)

规则:根据响应时间分配,请求优先落到响应更快的机器。

说明:不是 Nginx 自带,需要 upstream_fair 模块。

(8) 最少时间(least_time)

规则:选择平均响应时间最短的机器,而不仅仅看连接数。说明:开源版 Nginx 没有,商业版 Nginx Plus 提供。

上面是Nginx的分流模式,Nginx还支持“健康检测”,就是可以通过Keepalived实现高可用。

如果某台机器挂了,Nginx 会临时摘除它,不再转发请求;等它恢复正常,再自动加入。

这样就避免了用户请求打到坏机器上。

4. 回答公式

如果面试官问你:“Nginx 怎么做负载均衡?有哪些策略?”

你可以这么答:

复制Nginx 通过 `upstream` 模块实现负载均衡。常见策略有: 轮询(默认,平均分配请求); 加权轮询(根据服务器性能分配流量); least_conn(优先分配给连接数少的机器); ip_hash(保证会话粘性); 另外还有 random、hash、fair、least_time 等进阶策略,能根据不同业务场景优化分配效果。 同时 Nginx 还支持通过keepalived健康检查,服务器租用能保证高可用。1.2.3.4.5.6.7.

怎样?面试官看你这样答后心想:这小子有点东西,稳值三千。

(责任编辑:人工智能)

推荐内容
  • Flyme5.1.6.0a(打造独特个性化的手机主题,尽享视觉盛宴)
  • 网络安全入门–DNS
  • 大更新!微软发布103个漏洞补丁,其中13个为严重漏洞
  • Nagios WEB修改服务
  • 网吧电脑脱离主机教程(轻松拆解,自由组装,享受自由游戏体验)
  • CairoPlot让Linux服务器的日志文件更直观