nginx负载均衡配置详解linux,nginx负载均衡服务器对性能有要求吗

nginx负载均衡配置详解linux,nginx负载均衡服务器对性能有要求吗,详解Nginx服务器之负载均衡策略(6种)

本文主要详细介绍Nginx服务器的负载均衡策略(6种)。边肖认为这很好。现在分享给大家,给大家一个参考。来和边肖一起看看吧。

一、关于Nginx的负载均衡

在服务器集群中,Nginx扮演代理服务器的角色(即反向代理)。为了避免对单个服务器造成过大的压力,它将用户的请求转发到不同的服务器。详情请查看我的其他博客。

二、Nginx负载均衡策略

负载均衡用于从“上游”模块定义的后端服务器列表中选择一个服务器来接受用户的请求。一个最基本的上游模块是这样的。模块中的服务器是服务器列表:

#动态服务器组

上游动态_左雨{

服务器本地主机:8080;#tomcat 7.0

服务器本地主机:8081;#tomcat 8.0

服务器本地主机:8082;#tomcat 8.5

服务器本地主机:8083;#tomcat 9.0

}

上游模块配置完成后,反向代理指定对服务器列表的访问:

#其他页面反向代理tomcat容器

位置~。*$ {

索引index.jsp index.html;

proxy _ pass http://dynamic _ zuoyu

}

这是负载均衡最基本的例子,但不足以满足实际需求;目前Nginx服务器的上游模块支持六种分配:

负载平衡策略

投票

默认模式

重量

重量模式

ip _哈希

根据ip分配方法

最少连接

最小连接模式

公平(第三方)

响应时间模式

Url_hash(第三方)

根据URL分配方法

这里只详细讲解Nginx的负载均衡策略,第三方不多描述。

1、轮询

最基本的配置方式,上面的例子是轮询,这是上游模块默认的负载均衡策略。每个请求将按时间顺序一个接一个地分配给不同的后端服务器。

有以下参数:

失败_超时

与max _ failures一起使用。

最大失败次数

设置在fail_timeout参数设置的时间内的最大失败次数。如果在此时间内对服务器的所有请求都失败,服务器将被视为关闭。

失败时间

服务器被视为停机的时间长度,默认为10秒。

支持

将此服务器标记为备用服务器。当主服务器停止时,将向它发送请求。

向下

标记服务器永久关闭。

注意:

在轮询中,如果服务器宕机,它将被自动拒绝。

默认配置是轮询策略。

这种策略适用于服务器配置相当、无状态、短而快的服务。

2、weight

权重方法,它根据轮询策略指定轮询的概率。例子如下:

#动态服务器组

上游动态_左雨{

服务器localhost:8080 weight=2;#tomcat 7.0

服务器本地主机:8081;#tomcat 8.0

服务器本地主机:8082备份;#tomcat 8.5

服务器localhost:8083 max _ fails=3 fail _ time out=20s;#tomcat 9.0

}

在本例中,weight参数用于指定轮询概率,weight的默认值为1;权重值与访问速率成正比。例如,Tomcat 7.0被访问的可能性是其他服务器的两倍。

注意:

权重越高,需要处理的请求就越多。

该策略可以与least_conn和ip_hash结合使用。

这种策略更适合服务器硬件配置差异较大的情况。

3、ip_hash

根据基于客户端IP的分配方法指定负载平衡器。这种方法保证了同一个客户端的请求始终被发送到同一个服务器,以保证会话会话。这样,每个访问者都有一个固定的访问后端服务器的权限,可以解决会话不能跨服务器的问题。

#动态服务器组

上游动态_左雨{

ip _ hash#确保每个来宾都有固定的后端服务器访问权限。

服务器localhost:8080 weight=2;#tomcat 7.0

服务器本地主机:8081;#tomcat 8.0

服务器本地主机:8082;#tomcat 8.5

服务器localhost:8083 max _ fails=3 fail _ time out=20s;#tomcat 9.0

}

注意:

nginx 1 . 3 . 1版之前,不能在ip_hash中使用weight。

Ip_hash不能与backup同时使用。

这种策略适用于有状态服务,比如会话。

当需要移除服务器时,必须手动将其关闭。

4、least_conn

将请求转发到连接较少的后端服务器。轮询算法将请求平均转发给所有后端,使它们的负载大致相同;但是,有些请求需要很长时间,这会导致很高的后端负载。在这种情况下,least_conn可以达到更好的负载均衡效果。

#动态服务器组

上游动态_左雨{

最少_连接;#将请求转发到连接较少的后端服务器

服务器localhost:8080 weight=2;#tomcat 7.0

服务器本地主机:8081;#tomcat 8.0

服务器本地主机:8082备份;#tomcat 8.5

服务器localhost:8083 max _ fails=3 fail _ time out=20s;#tomcat 9.0

}

注意:

这种负载均衡策略适用于不同请求处理时间导致的服务器过载。

5、第三方策略

第三方负载均衡策略的实现需要安装第三方插件。

fair

根据服务器的响应时间分配请求,响应时间短的优先。

#动态服务器组

上游动态_左雨{

服务器本地主机:8080;#tomcat 7.0

服务器本地主机:8081;#tomcat 8.0

服务器本地主机:8082;#tomcat 8.5

服务器本地主机:8083;#tomcat 9.0

公平;#在短响应时间内实现优先级分配

}

url_hash

根据访问url的散列结果来分发请求,以便将每个url定向到同一个后端服务器,该服务器应该与缓存命中一起使用。如果多次请求相同的资源,它可能到达不同的服务器,导致不必要的多次下载,缓存命中率低,并浪费一些资源时间。通过使用url_hash,相同的url(即相同的资源请求)可以到达相同的服务器。一旦资源被缓存,一旦接收到请求,就可以从缓存中读取它。

#动态服务器组

上游动态_左雨{

哈希$ request _ uri#认识到每个url都指向同一个后端服务器

服务器本地主机:8080;#tomcat 7.0

服务器本地主机:8081;#tomcat 8.0

服务器本地主机:8082;#tomcat 8.5

服务器本地主机:8083;#tomcat 9.0

}

三、总结

以上是六种负载均衡策略的实现方法,其中Nginx按照除了轮询和轮询权重之外的不同算法来实现。在实践中需要根据不同的场景有选择的应用,大部分都是结合各种策略来满足实际需求。希望对大家的学习有帮助,也希望大家多多支持。

nginx负载均衡配置详解linux,nginx负载均衡服务器对性能有要求吗