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.

原文地址:https://www.cnblogs.com/l1222514/p/11415990.html