加入收藏 | 设为首页 | 会员中心 | 我要投稿 通化站长网 (https://www.0435zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

适合初学者的优秀Linux发行版

发布时间:2021-02-18 13:40:05 所属栏目:外闻 来源:互联网
导读:功能:指定一组上游服务器地址,地址可以是域名、IP 地址或者 Unix Socket 地址。可以在域名或者 IP 地址后加端口,如果不加端口,那么默认使用 80 端口。 通用参数:server 后可以添加的参数backup:指定当前 server 为备份服务,仅当非备份 server 不可用

功能:指定一组上游服务器地址,地址可以是域名、IP 地址或者 Unix Socket 地址。可以在域名或者 IP 地址后加端口,如果不加端口,那么默认使用 80 端口。

通用参数:server 后可以添加的参数backup:指定当前 server 为备份服务,仅当非备份 server 不可用时,请求才会转发到该 server表示某台服务已经下线,不再服务

负载均衡算法

加权 Round-Robin 负载均衡算法

Round-Robin(rr) 负载均衡算法发给上游服务器的请求是轮询发送的,相当于所有上游服务器根据顺序依次处理发来的请求。

有些情况下上游服务器性能不同,比如 4C8G 和 8C16G 的服务器都有,那么这时候就可以对服务器设置一些权重,让性能好的承担更多的请求。

  • 功能在加权轮询的方式访问 server 指令指定的上游服务集成在 Nginx 的 upstream 框架中,无法移除
  • 指令weight:服务访问的权重,默认是 1max_conns:server 的最大并发连接数,仅作用于单 worker 进程。默认是 0,表示没有限制max_fails:在 fail_timeout 时间段内,最大的失败次数。当达到最大失败时,会在 fail_timeout 秒内这台 server 不允许再次被选择fail_timeout:单位是秒,默认 10 秒,可以指定一段时间内最大失败次数 max_fails 以及到达 max_fails 之后该 server 不能访问的时间

对上游服务使用 keepalive 长连接

Nginx 与上游服务一般是在内网中的,所以开启 keepalive 后效果后更明显。

  • 功能:通过复用连接,降低 Nginx 与上游服务器建立、关闭连接的消耗,提升吞吐量的同时降低时延
  • 模块: ngx_http_upstream_keepalive_module 默认编译进 Nginx,通过 --without-http_upstream_keepalive_module 移除

对上游服务器的 HTTP 头部设定


 

反向代理与缓存

缓存这个问题分为两类,一类是时间缓存,一类是空间缓存。

  • 时间缓存是指,当用户请求一个页面的时候,Nginx 发现没有缓存,就会到后端服务器去取,在返回给用户响应的同时还会缓存一份,这样当下一个用户去请求的时候就会直接用缓存作为响应而不会再去请求上游的服务器。
  • 空间缓存这种用的比较少,主要是指当用户发来请求的时候,Nginx 可以提前去上游服务器获取一些响应的内容,这个后面可以看到是怎么用的。

  • 在 x 轴上,可以通过横向扩展应用服务器集群,Nginx 基于 Round-Robin 或者 Least-Connected 算法分发请求。但是横向扩展并不能解决所有问题,当数据量大的情况下,无论扩展多少台服务,单台服务器数据量依然很大。
  • 在 y 轴上,可以基于 URL 进行不同功能的分发。需要对 Nginx 基于 URL 进行 location 的配置,成本较高。
  • 在 z 轴上可以基于用户信息进行扩展。例如将用户 IP 地址或者其他信息映射到某个特定的服务或者集群上去。

这就是 Nginx 的负载均衡功能,它的主要目的就是为了增强服务的处理能力和容灾能力。

反向代理

反向代理和负载均衡在某种程度上是密不可分的。

Nginx 支持多种协议的反向代理。四层的反向代理比较简单,无论是 UDP 还是 TCP 的流量过来,转发到上游的依然是 UDP 或 TCP 的流量。

而到了应用层时,就不太相同了,因为 HTTP 的 Header 中包含了大量的业务信息,需要根据 HTTP 的头部转换成不同的协议。



 

(编辑:通化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读