8月9日上课内容 nginx反向代理与负载均衡

这篇具有很好参考价值的文章主要介绍了8月9日上课内容 nginx反向代理与负载均衡。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

负载均衡工作当中用的很多的,也是面试会问的很重要的一个点

负载均衡:通过反向代理来实现(nginx只有反向代理才能做负载均衡)

正向代理的配置方法(用的较少)

反向代理的方式:四层代理与七层代理

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

1、NGINX的七层代理和四层代理:

七层代理最常用的反向代理方式,只能配置在nginx配置文件的http模块中。而且配置方法名称叫:upstream模块,不能写在server中,也不能写在location中,在http模块当中是独立的一个配置(模块)。

七层代理:七层代理的就是http请求和响应。

客户端------>http请求------>七层代理(代理服务器上)------>代理服务器转发http请求到内部的一组服务器(web集群)

-------------->客户端不知道请求的是代理服务器还是内部服务器,而且通过代理服务器隐藏了内部服务器的ip。

实际上访问的是代理服务器,请求到代理,代理转发给web服务器。web服务器响应。

注:代理服务器只是负责转发,最终还是由web服务器来响应用户的。

四层代理:四层代理是基于tcp/ip协议的代理转发方式(四层就是传输层,协议),可以实现基于ip地址和端口进行负载均衡转发。 

四层代理无法获取http请求当中的URL信息,只能对tcp或者udp的数据包进行转发。流量转发stream,stream是不能配置在http模块中的,配置在全局当中。是属于一个独立的模块,不属于其他任何模块。

四层代理和七层代理之间的区别(面试题,重点)

1、七层走的是http请求四层走的是tcp/udp的数据包,转发的是流量。

七层代理http请求,可以对请求进行深入的解析和处理流量控制,内容的过滤

四层代理不能进行流量的控制,也没办法对内容进行过滤。

四层代理通常适用于:需要处理大量连接请求的场景。

七层:对请求进行精确处理和控制的场景。

在实际工作中,四层和七层可以配合使用。

2、四层代理和七层代理谁的速度快(核心):

四层代理速度比七层代理速度快

1、四层只是流量转发,不能对请求进行解析和控制,所以速度快。

2、四层代理走的是内核,内核转发的流量,所以速度快。

1、七层慢,他对请求进行解析和处理,速度比较慢

2、七层走的是用户态,访问控制,流量处理,所以速度比较慢。

七层代理可以提供更高级的服务和更高的用户体验。

正向代理:

proxy_pass 配置代理服务器访问的地址,只能写在location模块当中。 

例:

nginx1

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

nginx2

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

 8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

访问看一下日志文件

流量是通过代理服务器61来访问的

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

反向代理:客户端访问代理服务器,代理服务器转发请求或者流量到后端服务器,后端的web服务器会有多台,用户并不知道最终访问的服务器是哪一台服务器。

主要作用:负载均衡 高可用 可扩展 提高可维护性

你在工作中怎么做反向代理?实现方式是什么?(面试题,重点)

upstring:基于http实现负载均衡。就是反向代理。

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

调用ky30

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

修改一下62 63的配置 

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

 8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

通过61这个代理服务器把流量转发到62 63上

用轮询算法,分给test1 test2

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

upstream:基于http实现负载均衡。也就是反向代理

1、http请求的负载均衡方式

2、没有缓存

3、负载均衡的算法(实现方式,重点,掌握)

1、默认算法:轮询算法 rr 请求轮流分配给后端服务器,轮询算法适用于web服务器处理能力相近的情况,默认算法,可以不加。

2、加权轮询:

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

检查一下语法:

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

访问一下

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

2、加权轮询:建立在轮询算法的基础之上,通过给不同的web服务器权重,让处理能力更强的服务器可以分配到更多的请求。虽然配置了权重值,但是轮询的结果未必准确。

3、ip_hash:根据ip地址计算出一个hash值,使用ip_hash的算法,同一个客户端的请求,会被分配到同一个后端服务器上,保证会话的稳定性。如果后端服务器的数量发生变化,hash会被重新计算,请求的服务器也会发生变化。

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

请求一下:

发现第一次请求之后,再请求的状态码都是304,读取的是缓存,且每次请求访问的都是同一个服务器。

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

4、最少连接数:least_conn;轮询,会把请求发送到当前连接数最少的后端服务器。

适用于后端服务器处理任务耗时不同的情况,避免了所有请求集中在处理能力更强的服务器上。会和加权轮询配合使用。

5、url_hash:

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

 8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

清一下缓存,开一下新的终端,看一下

发现每次的请求也会分配到同一个服务器

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

换一个客户机访问一下:

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

发现请求的是location匹配的是uri,请求的也是同一个服务器

5、url_hash:根据uri地址计算hash值,使用url hash,相同请求的uri会分配到同一个后端服务器。

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

算法应用总结:

小场景:并发量很小,默认算法就可以满足适用条件

后端web服务器的处理能力有差异:加权轮询,和最小连接数配合使用。

大型并发:ip_hash,url_hash。第一次请求之后,会有本地缓存,而且因为hash算法的原因,请求的后台web服务器不会发生变化,可以提高访问速度,访问的是缓存(所以快)。减轻了后台服务器的请求压力。

注意:ip_hash,后端web服务器数量发生变化,请求的服务器也可能会发生变化。

url_hash,请求的地址发生变化,请求的服务器也可能会发生变化。

你怎么做反向代理的?概括总结

反向代理--->负载均衡--->算法--->根据不同的场景(并发量)选择不同的算法

反向代理就是负载均衡,你要做负载均衡,看你的场景并发量,访问人数有多少。根据这个指标,来确定负载均衡的算法。

并发小:默认轮询或者加权轮询,配合最小连接数使用即可。

高并发:ip_hash或者url_bash来实现,访问一次之后就不会再切换后端服务器。下一次访问的就是缓存,速度快,后台服务器请求的压力,也会变小。(仅限于http请求,不能写在stream里)

stream可以用加权,可以用轮询,转发流量不能基于ip_hash和url_hash

实验:基于域名来实现负载均衡

nginx1

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

配置完需要在本地做一个配置

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

nginx2 后台代理服务器配置

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

nginx3 后台服务器配置

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

都需要做本地映射

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

改完在撰写栏写一个重启nginx服务的命令

这样就三台机器可以同时执行重启命令

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

用test1作为客户端

映射服务器

映射地址是61,因为访问test,通过test这个代理服务器的地址来进行转发,所以配置的是test

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

虽然设置了域名,host地址还没有被传到后端服务器,所以无法解析,是404

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

在代理服务器上nginx1配,location模块中配置,把头部信息传给后端服务器

主机地址和真实ip地址写进去

请求头要包含主机名和真实的ip地址

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

配置完之后重启一下服务即可

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

访问没问题,再改一下访问地址

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

客户机直接访问,没问题,说明没问题

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

再到虚拟机中访问一下:

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

 8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

访问成功

四层代理:

stream单独一个模块,stream模块里面再单独配置一个server模块,调用upstream的server方法

配置端口号,让四层能够转发

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

检查一下,发现错误:

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

看一下日志

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

80端口被占用,把server端口改一下

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

再重启一下nginx,用浏览器访问一下,成功

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

也可以实现轮询

8月9日上课内容 nginx反向代理与负载均衡,nginx,负载均衡,运维

实验总结:

1、七层:

http根据ip地址

根据域名

2、四层

stream

ip_hash

轮询:默认 rr

           加权

最小连接数 

注:匹配uri不行

默认不带轮询

要想它轮询得加权文章来源地址https://www.toymoban.com/news/detail-645239.html

到了这里,关于8月9日上课内容 nginx反向代理与负载均衡的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx反向代理、负载均衡

         

    2024年02月12日
    浏览(40)
  • nginx负载均衡+反向代理

    最近业务上遇到一个需求,其它系统因业务校验需要调用上级系统进行数据发送或校验,如果上级系统停机维护,其它下级系统发送的http通讯会丢失,还要一次次补发数据,耗费人工与时间。使用nginx+反向代理解决了部分需求。 目标:当服务A停机维护,其它系统会调用服务

    2024年02月08日
    浏览(41)
  • Nginx反向代理和负载均衡

    ` 正向代理 反向代理 七层反向代理: (基于http协议) http { upstream 服务器组名称 { server IP1:PORT [weight=1 …]; server IP2:PORT; … 调度算法(rr轮询/加权轮询,least_conn最小连接,ip_hash,url_hash,fair); } server { location ~ … { proxy_pass http://服务器组名称; proxy_set_header HosT $host; proxy_set_he

    2024年02月03日
    浏览(89)
  • Nginx反向代理与负载均衡

    代理是在服务器和客户端之间假设的一层服务器,代理将接收客户端的请求并将它转发给服务器,然后将服务端的响应转发给客户端。 不管是正向代理还是反向代理,实现的都是上面的功能。 正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从

    2023年04月26日
    浏览(41)
  • Nginx的反向代理和负载均衡

    Nginx作为面试中的大…小头目,自然是不能忽视的,而以下两点就是它能成为面试中头目的招牌。 反向代理和负载均衡 在此之前,我们先对Nginx做一个简单的了解 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。因它的稳定性、丰富的功能

    2024年02月08日
    浏览(48)
  • 06、Nginx反向代理与负载均衡

    反向代理 : 这种代理方式叫做,隧道代理。有性能瓶颈,因为所有的数据都经过Nginx,所以Nginx服务器的性能至关重要 负载均衡 : 把请求,按照一定算法规则,分配给多台业务服务器(即使其中一个坏了/维护升级,还有其他服务器可以继续提供服务) 反向代理+负载均衡:

    2024年02月12日
    浏览(43)
  • 【nginx实战】nginx正向代理、反向代理、由反向代理实现的负载均衡、故障转移详解

    本文将要讨论以下内容 正向代理与反向代理的基本概念 Nginx正向代理服务的配置指令、Nginx反向代理服务的配置指令 Nginx反向代理服务器的应用——负载均衡、故障转移 案例分析   正向代理的概念 局域网内的机器借助代理服务访问局域网外的网站,此代理服务器提供的服务

    2024年01月24日
    浏览(52)
  • nginx反向代理_负载均衡的配置

    两台虚拟机: 88节点是自己的虚拟机 66节点是小组成员的虚拟机,我们暂且叫同学机 tomcat端口,分别为8081和8082 总结就是: 自己虚拟机上面安装nginx和tomcat8082 同学机上安装tomcat8081 都有两种方式,一种直接下载,第二种使用解压包方式。这里大多使用解压包方式。 我下载的

    2023年04月24日
    浏览(42)
  • Nginx反向代理实现负载均衡webshell

    目录 本实验所用的环境: 问题一:由于nginx采用的反向代理是轮询的方式,所以上传文件必须在两台后端服务器的相同位置上传相同的文件 问题二:我们在执行命令时,无法知道下次的请求交给哪台机器去执行我们在执行hostname -i查看当前执行机器的IP时,可以看到IP地址一

    2024年02月04日
    浏览(46)
  • Nginx【反向代理负载均衡动静分离】--上

    需求1: 访问不同微服务 示意图 需求2: 轮询访问服务 示意图 解决方案: Nginx 反向代理 负载均衡 动静分离 高可用集群 Nginx 在分布式微服务架构的位置 Nginx 是什么? 能干什么? 是什么:Nginx (“engine x”) 是一个高性能的HTTP 和反向代理WEB 服务器 能干什么:反向代理负载均衡动静

    2024年02月08日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包