Nginx实现负载均衡

负载均衡

概念

  • 负载均衡:负载均衡是Nginx常用的一个功能,当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃.为避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力
  • 建立多个服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择压力较小的服务器,然后将改访问请求引入该服务器.
  • 如此一来,用户的每次访问,都会保证服务器集群中每个服务器压力趋于平衡,分担服务器压力,避免了服务器崩溃的情况
  • 负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡
  • 负载均衡:Nginx根据整个集群每个服务器的性能 均衡分配处理请求的个数

实现方法

  • 修改配置文件

实现策略

  • 轮询(默认)
    • 所有服务器按顺序轮流处理
    • 适合于服务器性能相同的集群
upstream cloudserver
{
  #默认轮询
  server 192.168.160.128:8080;
  server 192.168.160.129:8080;
  server 192.168.160.130:8080;
}
  • 权重
    • 根据服务器性能 设置处理请求的比例
    • 适合于服务器性能差别大的集群
upstream cloudserver
{ 
  #权重
  #weight:指定比例
  #fail_timeout:指定最大等待时间
  server 192.168.254.128:8080 weight=2 fail_timeout=10s;
  server 192.168.254.129:8080 weight=7 fail_timeout=10s;
  server 192.168.254.130:8080 weight=1 fail_timeout=10s;
}
  • ip_hash
    • 每台服务器设置个编号: 从0开启
    • 客户端ip的hashcode值%服务器台数 =n : 让编号为n的服务器处理此请求
    • 特点: 同一个客户端的所有请求都只被一个服务器处理
upstream cloudserver
{
  #ip_hash
  ip_hash;
  server 192.168.254.128:8080  fail_timeout=10s;
  server 192.168.254.129:8080  fail_timeout=10s;
  server 192.168.254.130:8080  fail_timeout=10s; 
}
  • fair
    • Nginx接受到请求 会询问整个服务器集群 把请求交给第一个响应的服务器
upstream cloudserver
{
  server 192.168.254.128:8080;
  server 192.168.254.129:8080;
  server 192.168.254.130:8080; 
  fair;
}
# 如果fair测试出错::::需要添加插件:::添加插件失败!yum安装没有对应的配置文件
# 参考:https://www.cnblogs.com/DreamFather/p/13152609.html
  • url_hash
    • Nginx根据请求的url的hashcode%服务器个数 =n 把请求交给编号为n的服务器
upstream cloudserver
{ 
   #url_hash 根据请求的url的哈希值分配请求
   server 192.168.254.128:8080  fail_timeout=10s;
   server 192.168.254.129:8080  fail_timeout=10s;
   server 192.168.254.130:8080  fail_timeout=10s;
   hash $request_uri;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值