Nginx负载均衡

为什么选择负载均衡

现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。仅仅是升级硬件的话抛开成本不谈,效果也不见得一定好,因为业务是不断增长的,单纯的升级硬件解决不了性能的问题

针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance)。

负载均衡方式

  • 轮询(默认)

    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

    upstream backserver {
        server 192.168.0.14;
        server 192.168.0.15;
    }
    
  • 按权重weight分配

    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

    upstream backserver {
        server 192.168.0.14 weight=3;
        server 192.168.0.15 weight=7;
    }
    
  • ip_hash

    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

    upstream backserver {
        ip_hash;
        server 192.168.0.14:88;
        server 192.168.0.15:80;
    }
    
  • url_hash(第三方)

    upstream backserver {
        server squid1:3128;
        server squid2:3128;
        hash $request_uri;
        hash_method crc32;
    }
    

    下面我来用自己的电脑和服务器做测试

    1.本地nginx http配置

    upstream timeMachine.com {
        server 49.100.142.92:8001  weight=3;
        server 49.100.142.92:520   weight=1;
    }
    

    timeMachine.com要与下面server配置中location下的proxy_pass一样

    49.100.142.92是我个人的服务器 8001端口是eoliner文档项目 520是一个canvas项目

    2.本地nginx server配置

    server {
        listen 80;
        server_name api.upstream.com;
    
         location / {
            proxy_pass http://timeMachine.com;
            proxy_redirect default;
         }
    
    }
    

    这里的域名server_name api.upstream.com只是在hosts文件配置了一下

    我们在本地浏览器多次访问api.upstream.com,测试结果是出现不同的项目,其中8001端口出现的次数较520端口多

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • linux负载均衡总结性说明(四层负载/七层负载) 一,什么是负载均衡1)负载均衡(Load Balance)建立...
    phpdi阅读 3,165评论 0 0
  • 负载均衡 将用户的请求均匀的或者按照一定的优先级分配到一组服务器中的一台上,而接收到请求的服务器独立的处理请求并返...
    大乔是个美少女阅读 3,192评论 0 0
  • nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客...
    徐德东阅读 1,657评论 0 1
  • 负载均衡除了简单的upstream命令,还可以选择5种不同的负载模式。 这里就简单转载一下百度上的解释 1、轮询(...
    Yagami_阅读 1,150评论 0 0
  • 负载均衡 将用户的请求均匀的或者按照一定的优先级分配到一组服务器中的一台上,而接收到请求的服务器独立的处理请求并返...
    晴天灬阅读 3,471评论 0 1