目录
前言:
当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
负载均衡部署的前提是部署过多台反向代理服务器,或者多台虚拟主机服务器,客户端对服务器的访问通过Nginx的负载均衡策略,选择相对来说最优的代理服务器或虚拟主机进行访问。
负载均衡的调度算法有四种:
- 轮询:这一项为默认的,当没有配置负载均衡时,默认为轮询状态,例如,第一个请求web1加载,第二个请求web2加载,第三个请求web3加载,第四个请求web1加载… 以此类推。
- ip_hash:每个请求按访问IP的hash结果分配,同一个IP客户端固定访问一个后端服务器。可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题。
- url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。后台服务器为缓存的时候效率。
- fair:这是比上面两个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身是不支持 fair的,如果需要使用这种调度算法,必须下载Nginx的 upstream_fair模块。
准备工作
系统:Centos7
Nginx版本: 1.18.0
地址:10.8.161.9
测试机系统:win10
地址:10.8.161.45 (同一局域网)
Nginx代理主机端口:80
负载主机端口:91、92、93、94、95
一.反向代理
- 虚拟5台主机,以端口方式
server1配置如下 , 其他四台配置类似
- 创建server1网页 , 其他四台配置类似
- 配置完毕如下
① 主机的配置文件
②主机的网页目录
二.负载均衡
- 创建负载均衡的配置
- 保存退出,并重启,具体子配置目录下如下图,五个虚拟主机配置,一个负载均衡配置。
三.查看效果
ip_hash策略
四.负载均衡拓展
除了负载均衡的四种调度算法外,还可以单独在主机上后设置权重,或是其他策略。
weight:权重。 weight=1表示一次 ,例如图中5台为ABCDE,那么根据图中访问策略为ABBCCCDE 根据权重进行平均访问。
down:表示当前的server暂时不参与负载均衡。
max_fails:允许请求失败的次数,默认为1。当超过最大次数时,返回错误。
fail_timeout:在经历了max_fails次失败后,暂停服务的时间单位秒。max_fails可以和fail_timeout一起使用。
backup:预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻。