千家信息网

Springboot+Nginx怎么做负载均衡

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"Springboot+Nginx怎么做负载均衡",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Springboot+Nginx怎么做负载均
千家信息网最后更新 2026年11月03日Springboot+Nginx怎么做负载均衡

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

负载均衡介绍

wiki

百度百科

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

Nginx 负载均衡网络图

Nginx 负载均衡策略

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

轮循(默认)[Round Robin]

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

  • servername 自定义名称

  • server 配置支持 ip/域名 + 有端口/无端口(80) 。内容根据实际配置

  • 可配置 n 个 server

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

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

  • servername 自定义名称

  • server 配置支持 ip/域名 + 有端口/无端口(80) 。内容根据实际配置

  • weight 与访问量成正比,数字越大轮循几率越大

  • 可配置 n 个 server

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 算法查找服务器,如果没有则进行轮循(算是一种高级的轮循)。

  • servername 自定义名称

  • server 配置支持 ip/域名 + 有端口/无端口(80) 。内容根据实际配置

  • 可配置 n 个 server

upstream servername {     ip_hash;     server 192.168.0.1:8080;     server 192.168.0.2:8080; }
Server 参数
  • down 表示当前server 不参与负载

  • weight 默认为1 数字越大 负载权重越大

  • max_fails 允许请求失败的次数 当超过最大次数 返回proxy_next_upstream模块定义的错误

  • fail_timeout:max_fails次失败后,服务端暂停的时间

  • backup: 其他所有的非backup机器down或者忙的时候 请求这台机器,这台机器的压力最小

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 实现负载均衡

环境
  • JDK1.8 以以上

  • Nginx 1.15 以上

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

测试包使用
  • 下载测试包 建议使用GitZip for github 插件下载独立目录

  • 执行 clean 、package 操作,将打包的 jar 和 application.yaml 放在一起

  • 修改 application.yaml 端口地址.

  • 启动多个服务

  • 启动后在不同的客户端机器上访问 http://localhost/hello/username username 自定义 。测试负载均衡

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

配置 均衡 服务 服务器 端口 内容 机器 测试 实际 策略 名称 域名 客户 客户端 时间 权重 代理 学习 支持 不同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州万易互联网科技有限公司 中国互联网科技股 互联网科技小贷 善班互联网科技有限公司 唐信互联网科技 大连 互联网科技美容 左右互联网络科技 甘肃拓世互联网科技有限公司 顺网科技2021年互联网排名 成都仁贤领冠互联网科技有限公司 蓝色互联网科技 安控科技rtu产品工业互联网 佳云科技和互联网广告 互联网和黑科技的看法 互联网科技革命什么开始 苏州铭阳互联网科技有限公司 互联网科技创新的路径 工业互联网科技成果转化 重庆科技产业互联网有哪些 科技美学互联网 艺术 深圳市人人互联网科技有限公司 朗新科技与工业互联网 互联网科技网站 农村开互联网科技讲堂 宁夏科技产业互联网案例 昊天互联网科技有限公司 沐思想互联网科技有限公司 江苏苏星互联网科技有限公司 广州梦谷互联网科技有限公司领导 美国五大互联网科技公司市值多少
0