Live2D

Nginx负载均衡实战笔记与服务器集群配置

首先要简单介绍什么是负载均衡,以及负载均衡能解决什么问题,最后带来负载均衡的配置教程!

1:什么是负载均衡?

搜索的介绍笔记啰嗦,简单一句话来说,负载均衡就是把一台服务器的访问压力,适当平均的分担给其他的多台服务器;

2:负载均衡能解决什么问题?

当某个产品的流量特别大的时候,服务器再好的配置,都扛不住那海量的用户访问,假设某个产品刚上线的时候使用了一台服务器,刚开始每天的流量从一千到一万到十万到百万甚至数千万到亿级PV的时候,这台服务器配置好点,到十万的时候就可能已经扛不住了,这个流量可能是某一时间段,有很大的并发,也可能有其他的情况!如果产品的服务器架设一个负载均衡,根据需求情况来分发多台服务器,那么千万的并发有多台服务器分别承受,项目服务器就不会崩溃!

3:如何配置负载均衡服务器?

  1. 搭载负载均衡服务器,最低需要准备三台服务器(实际学习可以使用虚拟机克隆三台);
  2. 服务器需要都安装了Nginx;
  3. 一台服务器用来配置成负载均衡服务器;
  4. 另外两台服务器用来做为跑项目的web服务器;

4:配置负载均衡服务器示例:

Nginx负载均衡与服务器集群笔记

负载均衡的原理图

4.1查询三台服务器的ip分别是什么,千万不要弄混淆:

首先需要知道每一台服务器的ip是多少,在linux系统中查询ip的指令是:ifconfig

负载均衡服务器 lnmp 192.168.19.101

Web服务器1 lnmp1 192.168.19.102

Web服务器2 lnmp2 192.168.19.103

4.2下图将显示为lnmp服务器做的负载均衡的配置:

我们在server的上面配置upstream shop;这个shop是分发段的名称,要和下面转发的名称保持一致,各位同学也可以使用其他名字,不是一定要用shop这个名字哦!

Nginx负载均衡与服务器集群笔记

注意web1和web2的ip要填写正确

4.3配置web1和web2服务器:

由于现在很多php框架的路由需要设置Nginx的url重写,因此下面带来Nginx下url的重写配置,和详细注释;

Nginx负载均衡与服务器集群笔记

我们在server的location中配置

到此位置负载均衡就架设完了,不过这样的配置存在session丢失的问题,各位先思考一下再看下面我给的解决办法!

5:负载均衡session丢失问题:

我们想一下,如果用户A访问了我们的服务器十次,每次负载均衡服务器都可能给他分发不同的web服务器,如果用户登陆了,那么用户的session保存在其中的web1服务器中,那么用户再次访问的时候,负载均衡服务器却把用户分发给了web2服务器,但是用户的session却保存在web1服务器,此时用户的登陆状态就会失效,那么如何解决这个问题呢?

解决的方法是:ip_hash 让同样的ip来源,请求同一个服务器

Nginx负载均衡与服务器集群笔记

在负载均衡的配置中加入ip_hash即可

至此教程结束,感谢各位看官!!!

本教程主要注重负载均衡的配置,不深入探讨原理问题,让搜索各种教程还是弄不明白,无法配置出负载均衡是本教程的初衷,由于考虑到会看本教程的人相信Nginx已经会安装了,网上也有很多优秀的教程,因此本教程不写太多.

posted @ 2022-05-18 12:51  wekyun  阅读(274)  评论(0编辑  收藏  举报