栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Ngnix负载均衡

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Ngnix负载均衡

这一篇我们继续Ngnix系列的第三篇,说一下Nginx的负载均衡,还是先通过简单示例配置体验一下Ngnix的负载均衡,然后我们再从概念上对负载均衡进行说明,各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!

目录

环境准备

下载Tomcat并配置

启动Tomcat验证

实现负载均衡

测试负载均衡

负载均衡策略

轮询(默认)

加权轮询

根据ip分配方式

最少连接方式

其它方式


环境准备

我们准备两个Tomcat模拟两个服务,正常情况下访问 http://localhost:8080/  或者 http://localhost:8081/来获取我们我们需要的数据,通过Ngnix实现负载均衡后,我们访问 http://localhost:8090/ 来从8080和8081来获取数据。

下载Tomcat并配置

点此下载  

下载后解压并复制一份,第一个Tomcat不用该,修改第二个Tomcat下的server.xml配置文件,只修改以下两处即可:

 

启动Tomcat验证

为了演示方便我们修改下Tomcat的首页,webappsROOT目录下的index.jsp文件,增加一个端口号展示:

 

双击运行bin目录下的startup.bat启动两个Tomcat,启动后我们访问   http://localhost:8080/  和   http://localhost:8081/ 出现如下页面说明Tomcat正常启动。

 

实现负载均衡

Nginx 服务器是介于客户端和服务器之间的中介,通过上一篇博客讲解的反向代理的功能,客户端发送的请求先经过 Nginx ,然后通过 Nginx 将请求根据相应的规则分发到相应的服务器。

我们在Ngnix的配置文件的http块中新增一个server块:

    upstream mysvr {
      server localhost:8080;
      server localhost:8081;
    }
	server {
        listen       8090;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
			proxy_pass http://mysvr;
        }
    }

测试负载均衡

重启Ngnix后,我们多次访问 http://localhost:8090/ 发现8090和8091轮流出现,说明请求分发到了两个Tomcat服务。

 

负载均衡策略

上面我们多次访问  http://localhost:8090/ 发现8080和8081交替出现,说明我们的请求被交替分发到了两个服务中,这是Ngnix默认的负载均衡策略--轮询,下面看下Nginx的负载均衡策略。

轮询默认方式
weight权重方式
ip_hash依据ip分配方式
least_conn最少连接方式
fair(第三方)响应时间方式
url_hash(第三方)依据URL分配方式

轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

有如下参数:

fail_timeout与max_fails结合使用。
max_fails

设置在fail_timeout参数设置的时间内最大失败次数,如果在这个时间内,所有针对该服务器的请求都失败了,那么认为该服务器会被认为是停机了,

fail_time服务器会被认为停机的时间长度,默认为10s。
backup标记该服务器为备用服务器。当主服务器停止时,请求会被发送到它这里。
down标记服务器永久停机了。

加权轮询

通过weight指定权重,weight和访问比率成正比,用于后端服务器性能不均的情况。如下,我们修改upstream中每个服务的权重,再次测试时会发现明显 8080 端口号出现的次数更多,试验的次数越多越接近我们配置的比例。

    upstream mysvr {
      server localhost:8080 max_fails=3 fail_timeout=20s weight=5;
      server localhost:8081 weight=1;
    }

根据ip分配方式

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

配置也很简单,只要在upstream 指令块中增加了 ip_hash 指令即可。该指令就是告诉 nginx 服务器,同一个 IP 地址客户端发送的请求都将分发到同一个 Tomcat 服务器进行处理。

最少连接方式

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

其它方式

另外还有其它第三方的负载均衡策略,第三方的负载均衡策略的实现需要安装第三方插件,感兴趣的自己看下。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/320932.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号