Nginx负载均衡实战笔记与服务器集群配置
首先要简单介绍什么是负载均衡,以及负载均衡能解决什么问题,最后带来负载均衡的配置教程!
1:什么是负载均衡?
搜索的介绍笔记啰嗦,简单一句话来说,负载均衡就是把一台服务器的访问压力,适当平均的分担给其他的多台服务器;
2:负载均衡能解决什么问题?
当某个产品的流量特别大的时候,服务器再好的配置,都扛不住那海量的用户访问,假设某个产品刚上线的时候使用了一台服务器,刚开始每天的流量从一千到一万到十万到百万甚至数千万到亿级PV的时候,这台服务器配置好点,到十万的时候就可能已经扛不住了,这个流量可能是某一时间段,有很大的并发,也可能有其他的情况!如果产品的服务器架设一个负载均衡,根据需求情况来分发多台服务器,那么千万的并发有多台服务器分别承受,项目服务器就不会崩溃!
3:如何配置负载均衡服务器?
- 搭载负载均衡服务器,最低需要准备三台服务器(实际学习可以使用虚拟机克隆三台);
- 服务器需要都安装了Nginx;
- 一台服务器用来配置成负载均衡服务器;
- 另外两台服务器用来做为跑项目的web服务器;
4:配置负载均衡服务器示例:
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这个名字哦!
4.3配置web1和web2服务器:
由于现在很多php框架的路由需要设置Nginx的url重写,因此下面带来Nginx下url的重写配置,和详细注释;
到此位置负载均衡就架设完了,不过这样的配置存在session丢失的问题,各位先思考一下再看下面我给的解决办法!
5:负载均衡session丢失问题:
我们想一下,如果用户A访问了我们的服务器十次,每次负载均衡服务器都可能给他分发不同的web服务器,如果用户登陆了,那么用户的session保存在其中的web1服务器中,那么用户再次访问的时候,负载均衡服务器却把用户分发给了web2服务器,但是用户的session却保存在web1服务器,此时用户的登陆状态就会失效,那么如何解决这个问题呢?
解决的方法是:ip_hash 让同样的ip来源,请求同一个服务器
至此教程结束,感谢各位看官!!!
本教程主要注重负载均衡的配置,不深入探讨原理问题,让搜索各种教程还是弄不明白,无法配置出负载均衡是本教程的初衷,由于考虑到会看本教程的人相信Nginx已经会安装了,网上也有很多优秀的教程,因此本教程不写太多.
本文来自博客园,作者:wekyun,转载请注明原文链接:https://www.cnblogs.com/wekyun/articles/16284282.html