为什么网站需要负载均衡,站点流量大了之后,单一一台服务器往往无法承受住海量的用户,从而导致站点卡顿,或者服务掉线等情况。而负载均衡能够有效的解决这一问题。
通过一台主服务器和N个副服务器可以将网站的流量合理的分配至各个副服务器,如果副服务器仍旧处理不了则可以通过添加更多的副服务器来进一步扩容。等待流量高峰期结束再删除掉副服务器节省成本开支。
这篇文章就来说说如何利用宝塔面板和宝塔的负载均衡插件来实现这个功能,当然网站程序还是选择wordpress。
1、原理
用户通过浏览器对服务器发出请求——主服务器通过轮询|cookie|iphash 访问其中一台副服务器发出响应的请求——被请求的副服务器处理好网页数据传回主服务器——主服务器返回该数据给用户。
其中主服务器在整个过程之中只起到流量转发的作用,相对来说负载较小,副服务器作为负载均衡节点承担着处理数据的作用,负载较大,可以通过增加负载均衡节点(副服务器)来减小服务器负载。备份服务器承担着网站文件备份和应急备用的功能。
限制及解决方案:由于用户请求网页到能够看到网页中间这一时长受主服务器与负载均衡节点(副服务器)影响较大,主服务器与节点之间的延时不宜过大,且为了安全考虑尽可能的选择内网互通的服务器做负载均衡。
2、准备
1)服务器选择
最少选择3台服务器,尽可能选择同地区的服务器,1台主服务器,2台副服务器,有条件的可以再加一台备份服务器。
本教程以三台腾讯云香港轻量服务器24元套餐1C1G作为演示。目前腾讯轻量再搞活动,如下:
2)宝塔专业版(或主服务器单独购买负载均衡插件,只需要主服务器购买负载插件即可,其他无需购买,请注意。)
1===>宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取https://www.bt.cn/?invite_code=MV9ub2NxdmI=
2===>如果数据要和主站同步,那么你还需要安装一个宝塔数据同步工具(这也是个需要付费的工具/(ㄒoㄒ)/~~)
3)appnode面板这些都是免费的,所以我没可以用这个面板来部署。
搭建负载均衡
购买的3台服务器IP如下:(只是演示教程,并非真实IP)
- 主服务器IP的解析域名为:ee.fdao.xyz
- 主服务器IP:101.101.101.101
- 负载1:101.32.187.6
- 负载2:103.103.103
1)首先域名解析到主服务器公网IP(101.101.101.101)上,然后进入主服务器的宝塔操作面板,首先安装网站应用,这里以wordpress为例。宝塔搭建的话可以用一键部署即可。至于如何安装略过
2)安装好需要的负载均衡插件以及宝塔数据同步工具(软件商店→专业版插件)这里都能找到~~,安装略过~~
3)在负载节点上创建相同的环境,但是数据库不需要安装,需要用IP新建站点。
3、主服务器设置
1)新建站点,如果需要快捷方式,可以用一键部署
2)没有数据同步插件,所以这里就打包网站,注意只打包网站不要数据库。
3)在两个负载节点上创建相同域名的站点,之后把IP作为域名添加进来;也可以用IP新建站点,然后把主服务器的域名添加上去即可。
4)数据库授权:主服务器宝塔面板——数据库——指定IP——(127.0.0.1),(节点1IP),(节点2IP),(主服务器IP)(用英文逗号隔开):
4、负载1节点配置
1)如果你用了宝塔数据同步工具,那么只需要开启插件就能都同步过去,但是这里为了演示节省成本,就用打包的方法吧,先把主服务器上的网站打包,之后上传到负载均衡节点之上。
2)负载均衡节点1(IP:101.32.187.6 )创建IP为域名的网站,注意不用创建数据库,
- 把刚刚主节点的网站上传到网站根目录并解压。
- 新建一个a.txt的文件用来验证(内容随便)
- 添加主服务器的域名ee.fdao.xyz
- 设置好伪静态(这里是wp,所以设置wp伪静态)
- 修改<wp-config.php>的数据库IP为主服务器的IP,举例:
/** MySQL hostname */ define( 'DB_HOST', '101.101.101.101' );
添加域名的截图:
3)如果主服务器有证书,需要把证书复制过来。添加ssl证书(其他证书——复制粘贴主服务器的证书然后保存即可)
5、负载2节点配置
负载2节点配置,请参考负载1节点,是一毛一样的配置~~
6、配置主服务器负载均衡
1)安装宝塔负载均衡插件,软件商城——专业版插件——宝塔负载均衡
2)安装完成后进入设置页面开始设置。
有个坑注意:需要先删除主节点的域名,注意只删除域名,不删除根目录和数据库,如果你不删除,添加负载的时候一直会提示域名已经存在的错误~~
3)负载2节点也是如法炮制。节点管理还能调整权重、关闭节点等操作这里不做介绍。
4)全部添加完成节点,如图:
7、验证是否成功
1)你可以访问<域名/a.txt>的方式来验证负载是否搭建成功,如图:
2)之后关掉节点2,访问网站来验证节点1是否工作。如图:
此时访问,会出现节点2的信息,如图:
3)还有个坑需要注意,我们需要取消所有的网站目录中的防跨站攻击~~(包括主站和2个负载节点)
8、视频教程
教程录制中,请耐心等待~~~
9、最后
负载均衡是一个好东西,对于小网站来说或许没什么,但是对于大流量网站来说负载均衡是必备的。
否则去哪找那么强的一台独立服务器能够让几万十几万的人同时在线呢,对于中小网站也可以用负载均衡来让服务在线时间做一定的保障当一个节点发生故障后不会立刻停止服务,还能快速扩容应对突发流量。
要是担心主服务器会挂那就直接再上一个服务器做次要的主服务器,负载均衡节点不用变化,但是这样最好用单独的数据库,这样四台机器一个数据库就能组成一个稳定性极高的服务应用了。
参考:https://www.hostloc.com/thread-754871-1-1.html