Nginx+SpringBoot实现负载均衡( 二 )

  • listen:Nginx默认的端口;
  • server_name:Nginx服务的地址,可以使用域名,多个用空格分隔 。
  • proxy_pass:代理路径,一般配置upstream后面的名称用于实现负载均衡,可以直接配置ip进行跳转;
  • nginx.conf 完整的配置:
    events { worker_connections 1024;}error_log nginx-error.log info;http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream pancm{ server 127.0.0.1:8085; server 127.0.0.1:8086; } server { listen 80; server_name 127.0.0.1; location / { root html; proxy_pass http://pancm; 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; } }}负载均衡测试
    在完成Nginx配置之后,我们启动Nginx 。
    linux输入/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf,如果已经启动可以使用/usr/local/nginx/sbin/nginx -s reload命令进行热加载配置文件,windows直接点击Nginx目录下的nginx.exe或者 cmd运行start nginx进行启动,如果启动了依旧可以使用nginx -s reload进行热加载 。
    Nginx启动完成之后,我们依次启动刚刚下载的springboot和复制更改端口的项目,输入:JAVA -jar springboot-jsp-thymeleaf.jar启动 。
    都启动成功之后,我们在浏览器输入服务的ip即可进行访问 。
    示例图:
    Nginx+SpringBoot实现负载均衡

    文章插图
     
    注:这里我使用的是windows系统做测试,实际linux也是一样的 。
    然后我们进行操作,并查看控制台日志!
    Nginx+SpringBoot实现负载均衡

    文章插图
     
    从上述示例图中我们进行4次界面刷新请求,最终平均分配到两个服务中去了,从上述的测试结果中我们实现了负载均衡 。
    这里我在说一下使用Nginx的注意事项,在进行学习和测试的时候,使用nginx默认的端口实现负载均衡一般没有什么问题,但是当我们在项目中使用的时候,特别有登录界面的并且端口不是80的时候,会出现登录的界面无法跳转,进行调试的话会出现 net::ERR_NAME_NOT_RESOLVED这样的错误,出现这个原因的是因为nginx默认的端口是80,那么默认跳转的也是这个,所以出现这种情况的时候,需要在location 下添加proxy_set_header Host $host:port 这个配置,port 和listen 的端口保持一致就可以了 。

    【Nginx+SpringBoot实现负载均衡】


    推荐阅读