(三)nginx做springboot(tomcat)项目负载均衡

获取测试包

  •  链接:https://pan.baidu.com/s/113o5XXeqqYIn3SWRRWuEPQ  提取码:soj8,
java -jar just-change-port-0.0.1-SNAPSHOT.jar --server.port=8088

启动测试包,server.port表示项目监听的端口号,可以自己设置。  (三)nginx做springboot(tomcat)项目负载均衡_第1张图片, 访问后应该是这样的首页。

Nginx负载均衡方式 

  1. 轮询(默认方式) 请求按顺序分发给rs
  2. 权重  每台服务器给定一个weight(权重值), 权重高的会收到更多的请求,,可以根据rs性能不同设置不同权重。
  3. ip_hash  将请求ip的hash值对应某台机器,同一个ip只会访问同一台rs。

 

单机器负载均衡配置

(三)nginx做springboot(tomcat)项目负载均衡_第2张图片

本次配置会将访问vip(h128:8080)的请求分发到rs的8081、8082、8083端口,并分别测试三种负载均衡方式。

  1. 修改配置文件  

    vim nginx.conf

    在http块下添加 

            upstream rs {
                server 192.168.100.128:8081;
                server 192.168.100.128:8082;
                server 192.168.100.128:8083;
            }
            server {
            listen 8080;
            server_name h128;
            location /{
                 proxy_pass http://rs/;
             }
            }
    

    upstram块命名了叫rs的server群, server块中将访问h128:8080端口的的请求转发给rs群,通过负载算法绝对访问哪个端口。  这种是默认的轮询方式。 重新加载nginx或重启

    service nginx reload

     

  2. 在测试机8081、8082、8083端口启动测试项目。  

    # nohup启动 8081
    nohup  java -jar just-change-port-0.0.1-SNAPSHOT.jar --server.port=8081 >> 8081.nohup  &
    # nohup启动 8082
    nohup  java -jar just-change-port-0.0.1-SNAPSHOT.jar --server.port=8082 >> 8082.nohup  &
    # nohup启动 8083
    nohup  java -jar just-change-port-0.0.1-SNAPSHOT.jar --server.port=8083 >> 8083.nohup  &
    
    
    

    (三)nginx做springboot(tomcat)项目负载均衡_第3张图片(三)nginx做springboot(tomcat)项目负载均衡_第4张图片(三)nginx做springboot(tomcat)项目负载均衡_第5张图片

  3.  访问h128:8080端口,发现已经可以在不同端口轮询。  (三)nginx做springboot(tomcat)项目负载均衡_第6张图片(三)nginx做springboot(tomcat)项目负载均衡_第7张图片(三)nginx做springboot(tomcat)项目负载均衡_第8张图片

  4. 权重方式配置:  

            upstream rs {
                server 192.168.100.128:8081 weight=1;
                server 192.168.100.128:8082 weight=4;
                server 192.168.100.128:8083 weight=7;
            }
    

    重新加载配置文件, 重新访问http://h128:8080/后发现weight更高的收到请求更多。

  5. ip_hash配置: 

            upstream rs {
                ip_hash;
                server 192.168.100.128:8081;
                server 192.168.100.128:8082;
                server 192.168.100.128:8083;
            }

    现在访问8080端口只能访问8082端口的项目。 (三)nginx做springboot(tomcat)项目负载均衡_第9张图片。 因为ip_hash会固定访问的rs。

多机器负载均衡

(三)nginx做springboot(tomcat)项目负载均衡_第10张图片

  1. 获取测试项目 链接:https://pan.baidu.com/s/1iNn2q_07IVh4uKlehDOTuQ  提取码:tfoo ,,改进了一下,可以显示访问的服务器ip和端口号,也可以自己设置。
  2.  准备几台机器用于运行测试项目。 , 我有128、129、130三台 ,,
  3. 每台机器上运行测试项目
    # 128上
    nohup java -jar just-change-port-0.0.2-SNAPSHOT.jar --server.ip=192.168.100.128 --server.port=8090 &
    nohup java -jar just-change-port-0.0.2-SNAPSHOT.jar --server.ip=192.168.100.128 --server.port=8091 &
    nohup java -jar just-change-port-0.0.2-SNAPSHOT.jar --server.ip=192.168.100.128 --server.port=8092 &
    # 129上
    nohup java -jar just-change-port-0.0.2-SNAPSHOT.jar --server.ip=192.168.100.129 --server.port=8090 &
    # 130上
    nohup java -jar just-change-port-0.0.2-SNAPSHOT.jar --server.ip=192.168.100.130 --server.port=8090 &

    现在 129、130机器的8090端口,以及128机器上的8090、8091、8092端口都已经监听。

  4. 修改128上的配置文件: 添加

    upstream machines {
                server 192.168.100.128:8090;
                server 192.168.100.128:8091;
                server 192.168.100.128:8092;
                server 192.168.100.129:8090;
                server 192.168.100.130:8090;
            }
            server {
            listen 8900;
            server_name h128;
            location /{
                 proxy_pass http://machines/;
            }
    }

     

  5. 测试: 访问192.168.100.128:9000。如果不行检查防火墙是否关闭,端口是否开发,先试试直接访问ip:port。 nginx下的logs目录查看日志。

 

 

 

 

你可能感兴趣的:(运维空间)