Springboot+Nginx怎么做负载均衡

发布时间:2021-07-22 15:23:03 作者:chen
来源:亿速云 阅读:416

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

负载均衡介绍

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怎么做负载均衡”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. 外线不同运营商是怎么做负载均衡的
  2. 这个TreeView怎么做啊

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

nginx spring boot

上一篇:Mybatis应用mysql存储过程查询数据的示例分析

下一篇:css粘性定位position:sticky的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》