最新新闻:

nginx负载均衡策略有哪些,它是如何实现的「apache负载均衡配置」

时间:2023-02-24 08:29:04来源:搜狐

今天带来nginx负载均衡策略有哪些,它是如何实现的「apache负载均衡配置」,关于nginx负载均衡策略有哪些,它是如何实现的「apache负载均衡配置」很多人还不知道,现在让我们一起来看看吧!

Nginx 是什么?

Nginx官网:

https://nginx.org/



Nginx 是一种 WEB 服务器,他是基于 URL(Uniform Resources Locator)即统一资源定位符作为沟通的依据,通过HTTP协议(端口号默认:80)来提供各种的网络服务.

为什么会有负载均衡技术的产生?

我们都是知道部署服务需要服务器,当我们在一台服务器上部署服务之后,理论上我们的客户就可以通过网络的形式来访问我们的服务器上。



这个时候当有很多用户访问我们的服务器时,随着业务量的巨增,服务器可能承受不了这么大的需求就有可能宕机(服务器崩掉)。


借鉴图片:


为了解决这一问题,就产生了负载均衡技术。

负载均衡技术于 Nginx

为避免我们的服务因为服务的宕机而造成比较大的影响,现在我们利用 Nginx 技术,并且部署多台服务器。让他们按照一定的方式去承担起整个服务的可持续服务。


Nginx 负载均衡策略:

轮询 (默认方式)

这是最基本的配置方式,每一个请求都会按照时间顺序去逐一分配到不同的后端服务器上。

在轮询的方式中,如果在这个过程中有一个服务器宕机了,那么则会自动取出这个服务器。

参数:

在配置轮询的方式中,存在以下的参数:

1. fail_timeout

2.max_fails

以上的这两个参数是结合使用的。设置在fail-timeout 的时间内最大的失败次数,如果请求都失败的话,则认为服务器直接宕机了

3.fail_time 当服务器超过这个时间还没有响应的时候,则认为服务器宕机了。默认时间长度为 10秒。

4.backup 对服务器标记作为备用服务器,当主服务器不能服务时,则请求会来到备用服务器这里。

5.down 表示这个服务器,直接宕机了。

weight 模式

重量的意思,表示 ”权重“,在轮询的基础上指定轮询的机率。

upstreamdynamic_zuoyu { serverlocalhost:8080weight=3;#默认权重时1serverlocal host:8081max_fails=2fail_timeout=10s;#十秒内 请求两次 serverlocal host:8082; } ip_hash

指定负载均衡服务器按照基于客户端IP的分配方式,确保相同的客户端的请求发送到相同的服务器上

upstreamdynamic_zuoyu { ip_hash; # 保证每一个访客固定一个后端服务器 serverlocalhost:8080weight=3;#默认权重时1serverlocal host:8081max_fails=2fail_timeout=10s;#十秒内 请求两次 serverlocal host:8082; } #ip_hash于backup不能同时使用#这个策略适用于有状态服务,例如这个session#当服务器需要剔除时,需要手动down掉least_conn

判断连接数较少的服务器,把请求转发给连接数较少的服务器。

upstreamdynamic_zuoyu {least_conn;#判断连接数较少的服务器,把请求转发给连接数较少的服务器。 serverlocalhost:8080weight=3;#默认权重时1serverlocal host:8081max_fails=2fail_timeout=10s;#十秒内 请求两次 serverlocal host:8082; }#这个策略适用于请求处理时间长短不一造成服务器过载的情况。第三方策略

即需要安装第三方插件

fair 响应时间短的请求优先分配,时间较长的靠后,按照服务器端的响应时间来分配请求。

upstreamdynamic_zuoyu {fair; #响应时间段的优先分配 serverlocalhost:8080weight=3;#默认权重时1serverlocal host:8081max_fails=2fail_timeout=10s;#十秒内 请求两次 serverlocal host:8082; } url_hash

按照url的hash结果来分配相关请求,使用URL(统一资源定位符)来定向到后端服务器,配合缓冲命中来使用。当一个请求多次访问相同的某个资源时,既可以从缓存中读取。

upstreamdynamic_zuoyu {hash$request_url ; #实现每个url定向到同一个后端服务器 serverlocalhost:8080weight=3;#默认权重时1serverlocal host:8081max_fails=2fail_timeout=10s;#十秒内 请求两次 serverlocal host:8082; }

相关参考文章:https://blog.csdn.net/y912643/article/details/119917607?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-119917607-blog-110287221.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3别人写的很好,可以去看一下。文章写得如果有问题,还希望兄弟们多多指教,小白入门。

声明:文章仅代表原作者观点,不代表本站立场;如有侵权、违规,可直接反馈本站,我们将会作修改或删除处理。

图文推荐

热点排行

精彩文章