0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

nginx常见面试题:负载均衡有哪些算法?

小林coding 来源:小林coding 2023-12-07 10:45 次阅读

大家好,我是小林

很多同学简历的项目都有用到 nginx,今天我们来聊聊 nginx 常见的两个面试题:

反向代理是什么?

负载均衡有哪些算法

正向代理和反向代理

2469885e-94a7-11ee-939d-92fbcf53809c.png

图片

01 正向代理(Forward Proxy)

正向代理是位于用户设备和互联网之间的服务器。它代理的是客户端,是站在用户一方的。其真实客户端对于服务器不可见

正向代理通常用于:

保护客户端,隐藏客户端真实 IP,免受攻击。

避免网络浏览限制(科学上网)。

阻止访问某些内容。

提高访问速度。通常代理服务器会有较大的硬盘缓冲区,将一些响应结果缓存在服务器端,以便后续用户取用。

02 反向代理(Reverse Proxy)

反向代理是一种服务器,它接受客户端的请求,将请求转发给网络服务器,然后将结果返回给客户端,就像代理服务器处理了请求一样。

反向代理代理的是服务器,是和网络服务器站在一方的。其真实服务器对于客户端不可见。这就是它叫“反向”的原因。

反向代理可用于:

保护服务器,隐藏服务器真实 IP。

负载均衡,根据访问流量和服务器负载情况,将请求分发到不同服务器上。

缓存静态内容以及部分短时间的大量动态请求。

作为应用层防火墙提供防护。

加密/解密 SSL 通信

负载均衡算法

负载均衡将网络流量或一组任务以某种算法合理分配给各个处理节点,使得节点得到平等的使用,并及时可靠地返回结果给用户。

负载均衡广泛应用于各种硬件软件系统中,比如:

根据 IP 地址进行网络流量负载均衡。在服务进行维护时,可以方便将网络流量切换到临时节点或降级的服务上。

根据 HTTP 头信息或请求字段进行应用程序负载均衡,用户得到响应的时间更短,并且可以提供分层服务,也方便服务扩容时加入新的节点。

CDN 根据流量的来源,将流量导入相邻地区的服务器,以获得更短的响应时间和更高的可用性。

下图显示了 6 种常见算法。

2480944a-94a7-11ee-939d-92fbcf53809c.png

图片

01 静态算法

循环(Round Robin)

客户端请求按顺序发送到不同的服务实例。通常要求服务是无状态的。这种算法最简单,但是也无法处理某个节点变慢或者客户端操作有连续性的情况。

粘性循环(Sticky Round Robin)

这是对循环算法的一种改进。如果 Alice 的第一个请求发送到服务 A,那么接下来的请求也会发送到服务 A。这种负载均衡可以确保一个用户的请求都发往同一个服务节点,适合客户端操作有连续性的情况。有时候该服务节点上会保存该用户的一些状态,避免去后端数据库查询。

加权循环(Weighted Round Robin)

管理员可以指定每个服务的权重。权重高的服务会比其他服务处理更多请求。

散列(IP/URL Hash)

该算法对传入请求的 IP 或 URL 应用哈希函数。根据哈希函数的结果将请求路由到相关服务。

02 动态算法

最少连接(Least Connections)

新请求会发送到并发连接最少的服务节点。

响应时间最少(Least Time)

新请求会发送到响应时间最快的服务节点。这样,某个服务节点变慢就不会阻塞后续请求处理了。

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8981

    浏览量

    85103
  • 防火墙
    +关注

    关注

    0

    文章

    416

    浏览量

    35579
  • SSL
    SSL
    +关注

    关注

    0

    文章

    124

    浏览量

    25709
  • 负载均衡
    +关注

    关注

    0

    文章

    105

    浏览量

    12350
  • nginx
    +关注

    关注

    0

    文章

    142

    浏览量

    12158

原文标题:面试官:你背一下负载均衡算法?

文章出处:【微信号:小林coding,微信公众号:小林coding】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    常见的嵌入式C语言面试题

    数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见面试题,仅供参考。目前有以下18道题目。
    发表于 07-18 10:46 801次阅读

    C/C++程序员应聘常见面试题深入解析

    1.引言   本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。  许多
    发表于 03-26 10:16

    视频教程:Java常见面试题目深度解析!

    视频教程:Java常见面试题目深度解析!Java作为目前比较火的计算机语言之一,连续几年蝉联最受程序员欢迎的计算机语言榜首,因此每年新入职Java程序员也数不胜数。很多java程序员在学成之后,会面
    发表于 07-11 10:55

    视频教程:Java常见面试题目深度解析!

    技巧是一项很重要的能力。今天要给大家介绍的是一个Java常见面试题目深度解析视频教程,需要的朋友可以看看,希望能帮助到大家!课程目录:第一节、 String Stringbuffer
    发表于 07-29 10:20

    嵌入式工程师常见面试题汇总

    嵌入式工程师常见面试题,看看都会不!
    发表于 01-12 07:35

    嵌入式工程师常见面试题

    嵌入式工程师常见面试题,看看都会不!
    发表于 02-02 07:42

    单片机工程师面试题大合集,不看肯定后悔

    单片机开发常见面试题1.IIC协议时序图?2.冒泡排序下面是最基础的3.宏定义MIN,得出两个数字的最小值#define MIN(A,B) ((A)
    发表于 11-22 07:53

    c语言面试题,c++面试题下载

    c语言面试题,c++面试题1. static什么用途?(请至少说明两种) 1) 限制变量的作用域 2) 设置变量的存储域 2. 引用与指针什么区别? 
    发表于 10-22 11:19 5次下载

    c语言面试题

    c语言面试题
    发表于 11-05 16:48 0次下载

    C语言经典面试题

    面试题
    发表于 12-20 22:41 0次下载

    C语言经典面试题

    C语言 经典面试题
    发表于 01-05 11:27 0次下载

    经典硬件面试题精选及解答

    经典硬件面试题精选及解答
    发表于 11-29 18:02 0次下载

    常见的MySQL高频面试题

    在各类技术岗位面试中,似乎 MySQL 相关问题经常被问到。无论你面试开发岗位或运维岗位,总会问几道数据库问题。经常有小伙伴私信我,询问如何应对 MySQL 面试题。其实很多面试题都是
    的头像 发表于 02-08 16:05 2350次阅读

    关于数组常见面试题

    数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见面试题,仅供参考。目前有以下18道题目。
    的头像 发表于 08-17 09:25 1609次阅读

    【C语言经典面试题】static关键字的作用哪些?

    经典面试题必要了解下!
    的头像 发表于 10-02 12:00 2633次阅读
    【C语言经典<b class='flag-5'>面试题</b>】static关键字的作用<b class='flag-5'>有</b>哪些?