I. 概述
负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。
负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
II. Nginx配置示例——负载均衡
2.1 实现效果
浏览器访问http://192.168.1.114/edu/a.html/,负载均衡效果,平均到8080与8081端口中。
2.2 准备工作
启动两个web后端服务器,分别在8080端口以及8081端口,并创建对应的a.html。
python manage.py runserver 0.0.0.0:8080
python manage.py runserver 0.0.0.0:8081
2.3 具体配置
在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 / {
proxy_pass http://myserver;
}
} }
2. 重载nginx配置文件
```shell
nginx -s reload
2.4 负载均衡策略
- 轮询(默认)
每个请求按时间书怒逐一分配到不同的后端服务器,如果后端服务器宕机,则自动删除。
- weight
weight代表权重,默认为1,权重越高被分配的请求越多。
- ip_hash
在upstream中直接配置即可。每个请求按访问ip的hash结果匹配,这样每个访客固定访问一个后端的服务器,可以解决session的问题。
- fair(第三方)
在upstream中直接配置即可。按后端服务器的响应时间来分配请求,响应时间短的优先匹配。
2.5 测试
在浏览器多次访问192.168.1.114会发现nginx将所有的请求平均分摊到服务器列表中列出的服务器中了。