之前做项目都是在一台服务器上部署,向用户提供服务,随着用户的增多,和使用系统的频繁,用户在使用过程中感觉越来越卡,服务器的带宽和CPU/内存也越来越高,这时候常规的做法是升级带宽、升级基础配置,但是一台服务器就是配置再高,也架不住访问的次数多,武林高手也难敌千军万马,所以有了负载均衡,简单说就是将访问的流量分出去,让其他的服务器来分担压力,这样当访问量越来越高时,只需要增加一般配置的服务器,整理成本计算下来要比,只增加单台服务器配置的,要节省许多。接下来记录一下如何配置负载均衡,使用的环境是linux的宝塔控制面板
一、安装Nginx
因为我这里使用的是宝塔控制面板,操作较为傻瓜式,其他的linux可以看菜鸟的教程

二、新建站点


三、解析域名
解析一个域名到服务器的ip上,没什么说的
四、配置后端服务器
按照上面第二步,在另外一台服务器上做相同操作,需要注意的是,如果两台服务器在同一个区中,则可以填写内网ip访问
五、配置Nginx负载均衡
重点来了,打开Nginx开始配置了

在http节点中找到server节点,在他之上新建upstream节点,后面跟一个名称,可以自定义

上面我们将一个站点,分别配置到了两台服务器上,接下来需要将两台服务器的添加到服务器列表中,等待访问

上图中的ip_hash的意思是:当A用户第一次访问时到了第一台服务器,则在一定时间内,再次访问时,依然分发到第一台服务器,保证用户的登录状态和其他信息。
weight的含义是:分发权重,当指定的数值越大,则分发到该服务器的比例越大,但是当分发算法为ip_hash时,weight将不起作用。
分发算法有:rr轮询、wrr权重轮询、ip_hash静态调度、fair动态调度、least_conn连接数调度
服务器列表到这里就配置完了,接下来配置监听域名,并分发到服务器列表

到这里就配置完毕了,接下来为了看到效果,将两台服务器上的程序修改成不同的内容
六、访问
修改完毕后,在浏览器上输入解析的域名one.xxx.com


访问时记得要切换一下自己的公网ip,我这里是使用代理,大家可以用电脑和手机同时看也是可以的。
以上就实现了基本的负载均衡,关于怎么配置多站点,只需将http节点中的server多写几个即可。
网友评论