028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Springboot+Nginx怎么做负载均衡

本篇内容主要讲解“Springboot+Nginx怎么做负载均衡”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Springboot+Nginx怎么做负载均衡”吧!

创新互联-专业网站定制、快速模板网站建设、高性价比卢氏网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式卢氏网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖卢氏地区。费用合理售后完善,十载实体公司更值得信赖。

负载均衡介绍

wiki

百度百科

简单来说就是提升吞吐量、避免服务器过载。分为(如 F5),(如 apache、nginx 的反向代理,还有其他模式)

Nginx 负载均衡网络图

Springboot+Nginx怎么做负载均衡

Nginx 负载均衡策略

nginx 负载均衡使用 upstream 配置. 包括内置策略,还有通过第三方插件方式的策略。有兴趣的可以深入学习。

轮循(默认)[Round Robin]

每个请求按时间顺序逐一分配到不同的后端服务器,如果服务器shutdown 了,将不在分发请求到该服务器。

upstream servername {
    server 192.168.0.1:8080;
    server 192.168.0.2:8080; 
}
指定权重 [Least Connections]

通过权重,指定轮循的几率。weight和访问比率成正比,多用于服务器性能有差异的情况。

upstream servername { 
    server 192.168.0.1:8080 weight=8; 
    server 192.168.0.2:8080 weight=10; 
}
IP 绑定[IP Hash]

每个请求按根据客户端ip的hash结果分配服务器。这样可以客户端在一定时间内可以固定访问一台服务器,可以保持 Session 。 默认执行 20(忘记了)hash 算法查找服务器,如果没有则进行轮循(算是一种高级的轮循)。

upstream servername { 
    ip_hash; 
    server 192.168.0.1:8080; 
    server 192.168.0.2:8080; 
}
Server 参数
upstream servername { 
    server 192.168.0.1:8080 down; 
    server 192.168.0.2:8080 weight=10 max_fails=30 fail_timeout=12; 
    server 192.168.0.3:8080 weight=8; 
    server 192.168.0.4:8080 backup; 
}

Nginx+Springboot 实现负载均衡

环境

测试包: https://github.com/liuqi0725/springboot-useful/tree/master/springboot-soft-balance-nginx

测试包使用
nginx Session 共享

使用反向代理负载均衡,不可避免会面对 Session 共享。一般的方式是 cookie、memcache、redis 来管理共享数据. 后面的 Springboot-security 专题,会专门讲解。

nginx 配置

配置采用的 ip_hash 。可以替换成其他的策略测试。

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream springbootnginx{
       ip_hash;
       # 其实 2 个可以都在放本地,修改端口即可
       # 本地放一个
       server 192.168.1.130:8080;
       # 其他机器放一个
       server 192.168.1.120:8080;
    }

    server {
        listen       80;
        server_name  192.168.1.130;

        location / {
            root   html;
            # 指向反向代理
            proxy_pass http://springbootnginx;
            proxy_connect_timeout 3s;
            proxy_read_timeout 5s;
            proxy_send_timeout 3s;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

到此,相信大家对“Springboot+Nginx怎么做负载均衡”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


本文名称:Springboot+Nginx怎么做负载均衡
分享地址:http://www.tsicrk.com/article/jspgdp.html

其他资讯

让你的专属顾问为你服务

0.6117s