Springboot 配合 Nginx 实现负载均衡

Nginx+Springboot 实现负载均衡

    • Demo 说明
        • 环境
        • 安装
        • nginx Session 共享
        • nginx 配置

Demo 说明

提供完整 Demo 下载学习使用。

环境
  • JDK1.8 以以上
  • Springboot 2.3.3
  • Nginx 1.15 以上
安装
  • 下载(https://github.com/liuqi0725/springboot-useful/tree/master/springboot-soft-balance-nginx) 建议使用GitZip for github 插件下载独立目录
  • 执行 cleanpackage 操作,将打包的 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,java,spring,boot,java,nginx,负载均衡器)