美文网首页
nginx负载均衡

nginx负载均衡

作者: 明明就_c565 | 来源:发表于2022-09-04 17:14 被阅读0次

概述

nginx作为一款企业级的代理服务器,不管是大中小各类生产项目中,均有广泛的使用,尤其是在前后端分离的项目中,nginx作为路由转发的功能是非常常用的;

在一些流量比较大的项目中,为了应对高并发的场景,后端服务往往采用集群部署,这时候,就需要使用到nginx的负载均衡功能;

配置

默认情况下,nginx采用的是轮询策略,nginx还提供了其他几种常用的负载均衡配置

1、ip_hash

每个请求按访问IP的hash结果进行分配,这样每个访客就可以固定访问一个后端服务,一定程度上可以解决session问题;

upstream webservers {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E--> ip_hash; server 192.168.9.134:8081; server 192.168.9.134:8082;}

2、weight

weight代表权重,默认为1,权重越高,被分配的客户端请求就会越多

upstream webservers{

     server  192.168.9.134:8081 weight=8;

     server  192.168.9.134:8082 weight=2;

  }

3、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的将会被优先分配

upstream webservers{

        server 192.168.9.134:8081;

        server 192.168.9.134:8082;

        fair;

}

4、url_hash

按访问URL的hash结果分配。这样相同的url会被分配到同一个节点,主要为了提高缓存命中率。比如,为了提高访问性能,服务端有大量数据或者资源文件需要被缓存。使用这种策略,可以节省缓存空间,提高缓存命中率

upstream webservers{

    hash&request_uri;

    server 192.168.9.134:8081;

    server 192.168.9.134:8082;

}

5、least_conn

按节点连接数分配,把请求优先分配给连接数少的节点。该策略主要为了解决,各个节点请求处理时间长短不一造成某些节点超负荷的情况。

upstream webservers{

    least_conn;

    server 192.168.9.134:8081;

    server 192.168.9.134:8082;

}

以上不同的负载均衡策略均有各自不同的使用场景,请结合自身的实际情况进行合理的选择,同时,各自配置策略在实际使用的时候也不是孤立的,比如最小连接数可以搭配权重数一起使用

总结

一、负载均衡不是nginx独有,apache也有,但性能可能不如nginx。

二、多台服务器提供服务,但域名只解析到主服务器,而真正的服务器IP不会被ping下即可获得,增加一定安全性。

三、upstream里的IP不一定是内网,外网IP也可以。不过经典的案例是,局域网中某台IP暴露在外网下,域名直接解析到此IP。然后又这台主服务器转发到内网服务器IP中。

四、某台服务器宕机、不会影响网站正常运行,Nginx不会把请求转发到已宕机的IP上

举例

原文:

https://www.jb51.net/article/246881.htm

https://www.cnblogs.com/yuuje/p/11005992.html

相关文章

网友评论

      本文标题:nginx负载均衡

      本文链接:https://www.haomeiwen.com/subject/xoqbnrtx.html