朋友最近咨询了个事情,事情的原委是这样的,朋友他们有个单体应用,平时访问量也不大,隔一段时间会挂掉,需要重启,之前他们都是手工操作,这次正好快放长假了,咨询可不可以解决这个问题。
这个项目是个老项目从代码入手分析挂掉的原因,估计是个大活,所以想了集群负载均衡,经过效率方面的考虑,用nginx做负载均衡处理这个事情,因为这么处理不仅上手快,而且效率高,同时nginx可以把挂掉的服务剔除掉,下面就是整个处理过程。
首先安装nginx,部署多套项目
确保每套项目可以独立运行
压轴戏往往在最后↓↓↓↓↓↓
配置nginx负载均衡
nginx.conf
然后访问80端口,这个时候和端口的内容会交替出现,不过出现的频率会高很多。
下面是重要参数解析
upstreammyapp1{#ip_hash;server.0.0.1:weight=1max_fails=2fail_timeout=10s;server.0.0.1:weight=10max_fails=2fail_timeout=10s;}
upstreammyapp1:代表需要负载的服务,1或n都可以
weight:访问权重,数字越大,权重越高,访问频率越高
max_fails:最大失败次数,需要和下面的参数配合使用
fail_timeout:失败服务检测间隔,白话文就是在这个时间内某个服务的失败次数达到max_fails,nginx就会剔除该服务,在该段时间内,不再访问该服务,直到下一个周期开始,重新探测服务是否可用,nginx的探测是在服务访问的时候,实时探测
server{listen80;location/{proxy_pass