nginx负载均衡
目录
一:负载均衡
1.简介
负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。其工作模式为将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵,基于此提供快速获取重要数据,解决大量并发访问服务问题。
2.负载均衡的架构
高并发请求,均衡分发给不同的应用服务器。
二:负载均衡的实现
1.实现
将后端服务打包成一个IP连接池。
1、反向代理
server {
listen 80;
server_name _;
location / {
proxy_pass http://[连接池];
}
}
2、IP连接池
upstream [连接池名称] {
server [ip]:[port];
server [ip]:[port];
server [ip]:[port];
}
lb服务器
[root@lb01 conf.d]# cat game.conf
upstream supermarie {
server 172.16.1.7:80;
server 172.16.1.8:80;
server 172.16.1.9:80;
}
server {
listen 80;
server_name _;
location / {
proxy_pass http://supermarie;
include /etc/nginx/proxy_params;
}
}
三:负载均衡实现案例
- web01
1.网址配置文件、
[root@web01 opt]# vim /etc/nginx/conf.d/game.conf
2.web01将游戏软件配置文库压缩成包
[root@web01 opt]# tar -czvf Mario.tar.gz Mario/
3.web01将游戏压缩包传给web02与web03
[root@web01 opt]# scp Mario.tar.gz 172.16.1.8:/opt/
4.web01将网址配置文件传给web02与web03
[root@web01 conf.d]# scp game.conf 172.16.1.9:/etc/nginx/conf.d/
5.web02与web03将opt/目录下压缩包解压
[root@web02 conf.d]# tar -xf Mario.tar.gz
6.lb01 将后端服务打包成一个IP连接池(实现数据共享)
[root@lb01 nginx]# vim /etc/nginx/conf.d/game.conf
upstream supermarie {
server 172.16.1.7:80;
server 172.16.1.8:80;
server 172.16.1.9:80;
}
server {
listen 80;
server_name _;
location / {
proxy_pass http://supermarie;
include /etc/nginx/proxy_params;
}
}
- web服务器
7.测试
nginx -t
8.重启
systemctl restart nginx
9.lb服务器
测试
nginx -t
重启
systemctl restart nginx
10.DNS解析
www.game.com 192.168.15.5
11.网址测试(实现数据共享)
www.game.com
12.日志实时监控
负载均衡原理
负载均衡的意思就是有几台服务器或者几个服务,通过设备或者软件,将外部来的连接均匀的分配到这几个服务器或者服务上面,使服务器的负载平均,使外部访问基本达到快速。
1.客户端浏览网址 负载均衡代理
2.负载均衡将外部链接均匀的分配到web服务器上
3.使服务器到达负载均衡
tail -f /var/log/nginx/access.log
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)