Nginx3 - 负载均衡

在上两篇文章已经介绍了Nginx基本原理和代理功能,本篇文章介绍Nginx的负载均衡功能。
在这里插入图片描述

一、负载均衡简介

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

二、负载均衡原理

在上一篇代理功能介绍中,我说过负载均衡是建立在反向代理中的。每台服务器处理来自客户端的请求都应该是均衡的。

  • 原理:使用一个反向代理服务器指向多台部署相同应用的服务器,客户端请求直接向反向代理服务器发起,反向代理服务器根据负载均衡机制,将请求转发到不同的应用服务器上
  • nginx负载均衡要两台或以上的应用服务器 , 并且在nginx.conf中写入相关配置,主要是对proxy_pass,upstream的使用
    在这里插入图片描述

三、常见的几种负载均衡的方法

  1. 轮询(默认)——每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
  2. weight ——指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
  3. ip_hash ——每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。
  4. backup——其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
  5. down——表示单前的server暂时不参与负载6.fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。

四、负载均衡的轮询配置示例

轮询:使用循环、轮转的方式分发请求到服务器中,也是Nginx的默认负载均衡的方法,配置示例:

http{
     upstream myapp{
         server srv1.example.com;
         server srv2.example.com;
         server srv3.example.com;
     }
     server{
         listen 80;
         location / {
             proxy_pass http://myapp;
         }
     }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值