Nginx负载均衡

1.Nginx负载均衡策略

1.1 什么是负载均衡

说明:在分布式条件下,为了提高用户请求的响应能力,准备多台服务器.一起抗击高并发.需要用户通过同一个网址访问不同服务器的技术称之为负载均衡机制.
在这里插入图片描述

1.2 准备多台tomcat服务器

1.2.1 规划说明

准备3台tomcat服务器,并且端口号依次为8081/8082/8083,之后完成项目Windows部署.

1.2.2 编辑MsgController

说明:动态获取当前服务器端口号信息

@RestController		
public class MsgController {
	
	@Value("${server.port}")
	private int port;
	
	//主要获取当前访问服务器的端口号信息!!!!
	@RequestMapping("/getPort")
	public String getMsg() {
		
		return "您当前访问的服务器端口号:"+port;
	}
}

1.3 Nginx实现负载均衡

1.3.1 负载均衡策略----轮询

说明: 根据配置文件的顺序,依次访问tomcat服务器.

   # 配置域名代理
   server {
	listen		80;
	server_name	manage.jt.com;
	location / {
		#代理的是服务器地址
		#proxy_pass   http://localhost:8091;   
		proxy_pass    http://jtW;
	}
   }
   #定义多台tomcat服务器   1.轮询策略
   upstream  jtW {
	server localhost:8081;
	server localhost:8082;
	server localhost:8083;
   }

1.3.2 负载均衡策略----权重

权重策略: 让性能更优的服务器更多的处理请求.

#定义多台tomcat服务器   1.轮询策略    2.权重策略
upstream  jtW {
	server localhost:8081 weight=6;
	server localhost:8082 weight=3;
	server localhost:8083 weight=1;
}

1.3.3 负载均衡策略—IPHASH策略

说明: 如果需要用户与后端服务器进行绑定时,可以使用IPhash策略.
案例A: 有时用户可能做登录操作,可能将用户信息保存到session对象 中,如果这时采用轮询/权重的策略,可能访问其他的业务服务器.导致用户频繁的登录.
配置信息:

#定义多台tomcat服务器   1.轮询策略    2.权重策略
   upstream  jtW {
   	ip_hash;
	server localhost:8081 weight=6;
	server localhost:8082 weight=3;
	server localhost:8083 weight=1;
   }

IPHASH原理:
在这里插入图片描述
补充知识:
1).IPHASH一般只做测试时用.
2).使用IPHASH可能造成负载不均的现象. 某些服务器负载压力过高.有宕机的风险.
3).使用IPHASH时,如果后端服务器宕机,则直接影响用户的使用.
4).工作中如果需要实现用户信息的共享,一般采用SSO的方式进行.
用户只需一次登录就可以访问所有相互信任的应用系统

1.4关于Nginx属性配置

1.4.1关于Nginx工作原理说明

默认条件下,nginx会按照指定的负载均衡规则访问服务器。如果访问的服务器又出现了问题,那么则会访问下一台服务器。但是随着负载均衡的继续,任然访问故障机.效率低.

1.4.2down属性

说明:如果遇到某台tomcat服务器宕机,则可以通过down属性标识故障机,则nginx永远不会主动访问故障机.

#定义多台tomcat服务器   1.轮询策略    2.权重策略    3.ip_hash策略
upstream  jtW {
	#ip_hash;
	server localhost:8081 weight=6  down;
	server localhost:8082 weight=3;
	server localhost:8083 weight=1;
}

1.4.3backup 属性

说明: backup的作用表示标识备用机. 一般情况下备用不工作.当遇到主机全部宕机/遇忙时,这时备用机才会生效.

#定义多台tomcat服务器   1.轮询策略    2.权重策略    3.ip_hash策略
upstream  jtW {
	#ip_hash;
	server localhost:8081 weight=6  down;
	server localhost:8082 weight=3  down;
	server localhost:8083 weight=1  backup;
}

1.4.3设定访问超时

属性说明:
1.max_fails=1 允许访问失败的最多次数
2.fail_timeout=60s 失败的超时时间(理解为时间区间)
当服务器宕机时,这时配置文件还没有被标识为down时.开启了高可用的机制. 只要失败的次数超过最大失败次数,则
在指定的时间周期之内,不会再次访问故障机.

#定义多台tomcat服务器   1.轮询策略    2.权重策略    3.ip_hash策略
upstream  jtW {
	#ip_hash;
	server localhost:8081 max_fails=1 fail_timeout=60s;
	server localhost:8082 max_fails=1 fail_timeout=60s;
	server localhost:8083 max_fails=1 fail_timeout=60s;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值