springboo+nginx测试负载均衡
1:之前只是用nginx调用了boot_8044这一个服务,这次新建一个boot_8055服务,并在linux上启动;
两个boot我都是放在 /myprojects 目录下的(自定义,能启动就行)

2:切换到 /myprojects/nginx 目录下,修改nginx.conf中的某些配置,增加服务器组 upstream

保存修改后,重启一下nginx服务;
3:再次在windows下访问linux的nginx服务
访问nginx时可以看到浏览器发出了两个servlet 请求

而在两个boot页面中显示boot_8044收到一个请求,boot_8055收到一个请求

如有需要可以看看boot源码;
此时nginx就同时代理了boot_8044、boot_8055两个服务的请求,由于没有配置权重等,默认轮询;
下面可以来玩玩nginx的权重 等相关配置了;
4:为 upstream 中的各个boot 分别按需添加相关属性
1)weight : 权重,值越大,分配的概率越大,默认为1;注意weight=1才是正确写法,weight = 1多了空格,启动nginx或报错;

分配概率=单weight/总weight,如8044的概率为:1/1+2 = 1/3 ;
2)max_fails:最大失败次数,当某服务请求失败达到设定的次数之后,在fail_timeout设定的时间内将不再为该服务分配请求;
如果设置为0,Nginx会将这台Server置为永久无效状态,然后将请求发给定义了proxy_next_upstream, fastcgi_next_upstream, uwsgi_next_upstream, scgi_next_upstream, and memcached_next_upstream指令来处理这次错误的请求。
3)fail_timeout:单位秒,默认值为10;当某服务处理请求失败达到max_fails的设定后会触发改配置;

4)backup:备机,当其他服务都down掉(不可用)时,会把请求交给此机处理;

如图,我把8055设置成备机后,只剩8044还能正常工作,8044down掉后会唤醒8055,可自行测试;
5)down:标识某服务不可用,不再处理任何请求

如图,8044设置为down之后,不再处理请求,8055down掉nginx的请求将再无法处理;
6)max_conns:给某服务设置的最大连接数,当达到上限时nginx不再分配请求给改server,默认值为0,代表不限制;版本大于1.5.9才可使用;
7)ip_hash:使来自同一客户端的请求始终分发在同一server上,除非此server不可用(down掉);
ip_hash会为每个客户端分配一个具体hash值,用来找到上一次访问的server;
客户端的ip_hash值为ipv4的前三个8位字节或ipv6的的地址;

好处:可以保证浏览器端的登录状态

如图,我在源码中采用了session登录,使用ip_hash可以正确返回登录状态,而若我不适用ip_hash则无法判定用户的登录状态(能访问是因为我在源码中没加登录判断);
所以之前看不到具体的用户名就是这个原因导致;
坏处:当用户处于登录成功状态时(假设正在由8055处理所有请求),8055突然down掉了,用户就被迫下线了(可自行修改源码测试~);


8)slow_start:慢启动,默认为0,禁用此指令;作用是设置server从权重为0恢复到标准值权重的时间,或不健康的服务器恢复健康的时间,
或者服务器在一段时间被认为不可用后变得可用时间;不可与hash和ip_hash一起使用;
这个估计是bug吗?该指令在1.8.1中居然不可用~~~望解答

nginx这个东西还是有很多坑啊,需多多注意~~~~
springboo+nginx测试负载均衡的更多相关文章
- nginx作为负载均衡服务器——测试
i. 需求 nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至 tomcat服务器. nginx负载均衡服务器:192.168.101.3 tomcat1服 ...
- nginx+tomcat负载均衡
最近练习nginx+tomcat负载均衡.根据一些资料整理了大体思路,最终实现了1个nginx+2个tomcat负载均衡. 安装JDK 1>进入安装目录,给所有用户添加可执行的权限 #chmod ...
- windows配置nginx实现负载均衡集群
windows配置nginx实现负载均衡集群2014-08-20 09:44:40 来源:www.abcde.cn 评论:0 点击:617 网上大部分关于nginx负载均衡集群的教程都是lin ...
- Nginx作为负载均衡服务器(Windows环境)
一个最简单的负载均衡测试,不涉及到session复制,只是将请求分配到不同的服务器上去而已. 1.创建一个简单的web应用.只有一个index.jsp页面,,内容如下. <%@ page lan ...
- [转载] nginx的负载均衡
原文:http://www.srhang.me/blog/2014/08/27/nginx-loabbalance/ Nginx负载均衡 一.特点 1.1 应用情况 Nginx做为一个强大的Web服务 ...
- Nginx之负载均衡
转自:http://www.360doc.com/content/13/1114/12/7694408_329125489.shtml 注,大家可以看到,由于我们网站是发展初期,nginx只代理了后端 ...
- nginx做负载均衡配置文件
nginx做负载均衡是在反向代理的基础上做的,代码如下: ## Basic reverse proxy server ## ## Apache backend for www.baidu.com ## ...
- linux+nginx+tomcat负载均衡,实现session同步
linux+nginx+tomcat负载均衡,实现session同步 花了一个上午的时间研究nginx+tomcat的负载均衡测试,集群环境搭建比较顺利,但是session同步的问题折腾了几个小时才搞 ...
- nginx四层负载均衡配置
nginx四层负载均衡配置代理Mysql集群 环境如下: ip 192.168.6.203 Nginx ip 192.168.6.*(多台) Mysql 步骤一 查看Nginx是否安装stream模块 ...
随机推荐
- React Native & Android & iOS & APK
React Native & Android & iOS & APK https://play.google.com/apps/publish/signup/ $ 25 bui ...
- git的安装(和远程仓库建立连接)
安装完git 1.配置用户名和邮箱 $ git config --global user.name "My Name" $ git config --global user.em ...
- cocos 资源工作流程
前面的话 本文将详细介绍 cocos 中的资源工作流程 概述 [同步性] 资源管理器中的资源和操作系统的文件管理器中看到的项目资源文件夹是同步的 在资源管理器中对资源的移动.重命名和删除,都会直接在用 ...
- 代码管理git 工具的话可以使用GitHub桌面端管理git、码云上的代码
git版本控制 廖雪峰老师的git教程 git是linus 1991年创建了开源的linux...已成为最大的服务器系统软件 集中式的版本控制器:CVS.SVN.ClearCase是IBM的收费软件 ...
- 关于空想X
只是一个ID而已,我才不会告诉你这是一艘法国驱逐舰 想去打CTF,但是什么也不会. 博主人很懒,估计也不会更几篇博客,嘿嘿嘿. 最近在学PYTHON,欢迎交流.
- 用Python将一个列表分割成小列表
用Python将一个列表分割成小列表 2018年01月15日 11:09:25 幸福丶如此 阅读数:16842 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...
- 【CF932E】Perpetual Subtraction(NTT,线性代数)
[CF932E]Perpetual Subtraction(NTT,线性代数) 题面 洛谷 CF 题解 设\(f_{i,j}\)表示\(i\)轮之后这个数恰好为\(j\)的概率. 得到转移:\(\di ...
- git学习01- 下载安装&初始化库&提交
1.windows下安装git,git官网下载安装包安装 2.本地创建一个目录,在目录下创建1个文本 readme.txt 3.cmd进入到该目录,执行git init,初始化git仓库 4.添加文件 ...
- JS学习笔记Day20
一. 1.服务器和客户端 客户端 程序: 通过浏览器直接运行 服务器 程序: 通过安装某种服务器软件 程序才可以运行 apache php文件 ...
- python类的两种创建方式
参考: https://blog.csdn.net/likunkun__/article/details/81949479