nginx负载均衡

一:负载均衡

1.简介
负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。其工作模式为将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵,基于此提供快速获取重要数据,解决大量并发访问服务问题。

image

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

image

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

image

6.lb01 将后端服务打包成一个IP连接池(实现数据共享)
[root@lb01 nginx]# vim /etc/nginx/conf.d/game.conf

image

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

image

12.日志实时监控
负载均衡原理
负载均衡的意思就是有几台服务器或者几个服务,通过设备或者软件,将外部来的连接均匀的分配到这几个服务器或者服务上面,使服务器的负载平均,使外部访问基本达到快速。

1.客户端浏览网址 负载均衡代理
2.负载均衡将外部链接均匀的分配到web服务器上
3.使服务器到达负载均衡

tail -f /var/log/nginx/access.log

image

posted @ 2022-01-06 23:40  AlexEvans  阅读(55)  评论(0编辑  收藏  举报