nginx的负载均衡
1.什么是负载均衡
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
通俗点讲就是一个任务分给好多人执行,降低每个人的压力
2.nginx负载均衡的实现
nginx负载均衡的实现 1.准备三台机器,准备3台虚拟机 192.168.226.128 是nginx资源服务器,返回页面的 192.168.226.129 用作nginx负载均衡服务器,代理服务 192.168.226.130 也用作nginx资源服务器,返回页面 2.分别配置三台机器 确保 128和130这2台机器,能正确的资源返回即可 这三个机器,都是通过修改nginx.conf来实现效果的 128可以返回一个页面 130可以返回一个页面 129配置反向代理 3.配置关键点如下 129负载均衡配置修改nginx.conf如下 添加负载均衡地址池的参数 #默认是轮询方式,两台服务器 upstream django { server 192.168.226.128; server 192.168.226.130; } 添加反向代理参数如下 proxy_pass http://django; 4.配置完毕后,重启nginx,检测负载均衡效果 访问192.168.226.129这个负载均衡器 它会默认轮询的,丢给upstream中的地址池,每人一次
3.nginx负载均衡算法
nginx负载均衡的算法 1.轮询方式 2.加权轮询 upstream s18django { server 192.168.226.128 weight=8; server 192.168.226.130 weight=2; }
调度算法 概述 轮询 按时间顺序逐一分配到不同的后端服务器(默认) weight 加权轮询,weight值越大,分配到的访问几率越高 ip_hash 每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器 url_hash 按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器 least_conn 最少链接数,那个机器链接数少就分发 1.轮询(不做配置,默认轮询) 2.weight权重(优先级) 3.ip_hash配置,根据客户端ip哈希分配,不能和weight一起用
4.ip_hash方式
ip_hash方式,对你的ip地址进行哈希,ip_hash方式不得与权重共用 upstream s18django { server 192.168.226.128; server 192.168.226.130; ip_hash; }
对请求的ip地址进行哈希,哈希完后分配服务器,之后这个ip就只能对这台服务器发起请求
5.