I. 概述

负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。
负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
v2-6aa2607e04cc9d2f0d448f9fa80b2ae2_1440w.jpg

II. Nginx配置示例——负载均衡

2.1 实现效果

浏览器访问http://192.168.1.114/edu/a.html/,负载均衡效果,平均到8080与8081端口中。

2.2 准备工作

启动两个web后端服务器,分别在8080端口以及8081端口,并创建对应的a.html。

  1. python manage.py runserver 0.0.0.0:8080
  2. python manage.py runserver 0.0.0.0:8081

2.3 具体配置

  1. 在nginx中进行负载均衡配置 ```shell http{ upstream myserver{

    服务器列表

    server 192.168.1.114:8080 weight=1; server 192.168.1.114:8081 weight=1; }

    server{ listen 80; server_name 192.168.1.114;

    location / {

    1. proxy_pass http://myserver;

    }

    } }

  1. 2. 重载nginx配置文件
  2. ```shell
  3. nginx -s reload

2.4 负载均衡策略

  1. 轮询(默认)

每个请求按时间书怒逐一分配到不同的后端服务器,如果后端服务器宕机,则自动删除。

  1. weight

weight代表权重,默认为1,权重越高被分配的请求越多。

  1. ip_hash

在upstream中直接配置即可。每个请求按访问ip的hash结果匹配,这样每个访客固定访问一个后端的服务器,可以解决session的问题。

  1. fair(第三方)

在upstream中直接配置即可。按后端服务器的响应时间来分配请求,响应时间短的优先匹配。

2.5 测试

在浏览器多次访问192.168.1.114会发现nginx将所有的请求平均分摊到服务器列表中列出的服务器中了。