一、nginx负载均衡集群架构精讲

来源:14-3 nginx负载均衡技术精讲(上)

singwa

2020-06-04

1.1 负载均衡的方法

     负载均衡是集群技术的一种应用,它可以将请求负载到多个服务中,从而提供并发处理能力,任何一台服务器故障不影响整体服务,从而也能达到高可用的状态;这也是解决常用并发能力的一种手段。web负载均衡是比较常见的一种负载均衡。

1.1.1 常见的web负载均衡技术:

dns轮训

cdn

ip负载均衡

1.1.2 dns轮训

 http://img.mukewang.com/szimg/5ed90a11099424c912140508.jpg

 

如图为dns轮训方式做的负载均衡, 比如singwa.mall.com这个域名有3个A记录,然后dns可以随机的分配到不同的IP,就可以完成简单的负载均衡;dns成本很小,所以小公司用的比较多,但是大公司的话也可以结合dns来做,比如返回的IP可以是一个集群的地址(这个VIP下又挂好多服务)

 

缺点: 可靠性低,不能做到高可用;负载不均衡;

1.1.3  IP负载均衡

IP负载均衡是基于tcp ip的, ip负载均衡可以使用硬件也可以使用软件来实现, 硬件设备比如F5,软件有:nginx lvs haproxy

1.2  ngnix如何做负载均衡

http://img.mukewang.com/szimg/5ed90a2709dc8eaa12460880.jpg 

1.2.1  nginx负载均衡模式

轮训模式

weight权重模式

ip_hash

 

ngnix负载均衡配置主要是对proxy_pass 和 upstream的配置,需要在http模块下配置upstream模块,然后在server模块下配置proxy_pass模块

 

 http://img.mukewang.com/szimg/5ed90a3309020c8313580634.jpg

 

1.2.2 负载均衡案例

本节使用本地ng开启不同的端口来演示负载均衡,模拟效果和多个机器一样,大家只要把IP修改为相关远程IP即可

1、使用8082端口作为负载均衡机器,也可以说是网关proxy

2、本地开启两个PHP项目 ,同样是模拟多PHP服务,然后通过ng配置2端口 8182  8382 绑定到不同的PHP项目

3、通过配置proxy转发到不同PHP项目中

4、模拟负载均衡, 并设置当一台服务器挂之后演示效果。

http://img.mukewang.com/szimg/5ed90a3e0904a1d511880734.jpg 

 

http://127.0.0.1:8182/api/category

 

1.3 nginx负载均衡注意事项

1.3.1 配置完毕nginx负载均衡后,我们还需要看看页面是否正常访问,因为之前的页面我们是绑定单实例的,需要修改配置文件vue.config.js

1.3.2 修后访问请求发现页面不正常,没有关系 继续分析为什么

1.3.3 需要修改nginx proxy配置,我们需要设置host port

1.3.4 图片服务器怎么办? 后端session怎么办?

 

 

单机版本上传文件

http://img.mukewang.com/szimg/5ed90a4b09fc522205740666.jpg 

分布式后文件上传

 

 http://img1.sycdn.imooc.com/szimg/5ed90a540978a1bc07041162.jpg

 

 


写回答

1回答

singwa

提问者

2020-06-04

后续每章的内容都会在这里呈现。请关注。

1
3
qq_你的暖宝宝呀_04379583
请问下 cdn 负载均衡 就是指 的 nginx 负载均衡是吧?我看 上面没有讲cdn 相关
2024-05-16
共3条回复

全流程开发 TP6.0实战高并发电商服务系统

一课就能掌握TP6.0基础及运用,打造完整高并发的电商后端项目

1459 学习 · 1310 问题

查看课程