绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Nginx实现负载均衡
2020-05-25 14:43:36

1.准备工作。
结合本文场景,需要安装Nginx和Java环境(运行SpringBoot项目)。
1.1 关于Linux系统安装Nginx可以参考我的文章---(传送门)。
1.2 由于只是测试,SpringBoot只是映射了根路径,端口分别是10001和10002,分别返回demo1和demo2字符串作为区分。
2.Nginx负载均衡的集中方式介绍
2.1 轮询
轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训10001服务和10002服务。

upstream  dalaoyang-server {
       server    localhost:10001;
       server    localhost:10002;
}



2.2 权重
指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器大性能,如下配置后10002服务的访问比率会是10001服务的二倍。

upstream  dalaoyang-server {
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}



2.3 iphash

每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。

upstream  dalaoyang-server {
       ip_hash; 
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}

2.4 少连接

将请求分配到连接数少的服务上。

upstream  dalaoyang-server {
       least_conn;
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}

2.5 fair

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

upstream  dalaoyang-server {
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
       fair;  
}

3.Nginx配置

以轮训为例,如下是nginx.conf完整代码。

worker_processes  1;

events {
    worker_connections  1024;
}


http {
   upstream  dalaoyang-server {
       server    localhost:10001;
       server    localhost:10002;
   }

   server {
       listen       10000;
       server_name  localhost;

       location / {
        proxy_pass http://dalaoyang-server;
        proxy_redirect default;
      }

    }

}

4.测试

重启nginx,次访问http://localhost:10000如图所示,

在次访问如图所示

如果要修改负载均衡算法修改对应upstream模块即可。

我这儿整理了比较全面的JAVA相关的面试资料,

需要领取面试资料的同学,请加群:473984645

分享好友

分享这个小栈给你的朋友们,一起进步吧。

唠唠叨叨负载均衡
创建时间:2020-05-25 14:12:28
唠唠叨叨负载均衡
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 小雨滴
    专家
戳我,来吐槽~