zoukankan      html  css  js  c++  java
  • Nginx负载均衡简易配置

    多台Web服务器水平扩展,进行负载均衡对外服务,是一种很常见的方案。

    常用方法用DNS轮询,LVS。

    DNS轮询虽然有配置简单的有点,但无法实现健康检查,DNS修改需要较长时间失效,对于无域名的内部服务需要手动修改客户端hosts。

    LVS实现功能强大,可配置项多,能实现会话保持,但消耗机器数多,不适合中型和小型项目。

    其实Nginx也能实现负载均衡,而且配置简单,通过ip_hash也能实现会话保持。

    配置方法:

    1.轮询:

    此种配置最为简单也最为常用,请求将会依次交给不同的服务器处理,但无法实现会话保持。

    upstream 配置名称 {
        server 192.168.1.1:8080; # 服务器A
        server 192.168.1.2:8090; # 服务器B
        server 192.168.1.3:8100; # 服务器C
    }

    2.权重

    此种配置适用于多台服务器配置有高低之分,需要根据实际配置情况分配请求,此方法依然无法实现会话保持。

    #weight越大,处理请求的次数则越多,实际值=weight/sum(weight) * 总请求数
    upstream 配置名称 {
        server 192.168.1.1:8080 weight=10;  # 服务器A
        server 192.168.1.2:8090 weight=20;  # 服务器B
        server 192.168.1.3:8100 weight=20;  # 服务器C
    }

    3.ip_hash

    此配置根据ip的hash值决定处理请求的服务器,所以同一ip多个请求将交给同一服务器处理,这种方法可以解决会话保持的问题。

    upstream 配置名称 {
        ip_hash;  # 使用ip_hash方法
        server 192.168.1.1:8080; # 服务器A
        server 192.168.1.2:8090; # 服务器B
        server 192.168.1.3:8100; # 服务器C
    }

    4.其他方法

    籍由第三方扩展,Nginx还可以实现多种负载均衡算法,例如:url_hash、fair等等,由于实际使用较少,在此不一一赘述。

    5.应用负载均衡

    server {
        listen 80;
        location / {
            root   html;
            proxy_pass   http://配置名称;
            index  index.html index.htm;
        }
    }

    注意:请不要在upstream中设置的服务器上添加proxy_pass,否则会出现死循环,导致请求失败。

    6.更多的upstream配置选项

    #weight 默认为1,值越大权重越大,处理请求次数越多
    #down 该服务器不会被转发请求
    #backup 该服务器用于备份,只有其他服务器都失效时才使用
    #max_fails 允许的最大失败次数
    #fail_timeout 达到最大失败次数后,暂停处理请求的时间,单位:秒 
  • 相关阅读:
    【云速建站】购买前的指导
    【云速建站】域名配置指导
    Python爬虫批量下载糗事百科段子,怀念的天王盖地虎,小鸡炖蘑菇...
    舌尖上的安全
    【云速建站】视频播放专题
    Python装饰器总结,带你几步跨越此坑!
    让你提前认识软件开发(15):程序调试的利器—日志
    Win8下IIS的安装和站点的公布
    [2011山东ACM省赛] Mathman Bank(模拟题)
    Android UI开发神兵利器之Android Action Bar Style Generator
  • 原文地址:https://www.cnblogs.com/koboshi/p/4052064.html
Copyright © 2011-2022 走看看