Nginx - 负载均衡配置

    Nginx负载均衡是一种在项目调优过程中非常常见的优化措施,因为它的配置过程简单,见效快,可拓展性强!所以现在很多项目都使用了这种优化措施,下面和大家分享一下我的配置过程和配置过程会遇到的一些问题。

  • 负载均衡 - 配置

    #  首先,你要有两台或以上可以提供相同服务的Web服务器,不然这个负载均衡配置就没有意义!
    #  在配置过程中只需要改代理服务器(代码所在服务器)的配置就行,其他服务器不用管。
    -  vim /usr/local/nginx/conf/nginx.conf
            # 在http下添加如下代码:
            upstream test { # test 名字可以自定义
                # 负载均衡模式(非必选项)
                # 注:此处配置server 80端口的webserver是无效的,即便配置了,请求也会被分发至下一个server
                server 192.168.93.128:8080 参数;
                server 192.168.93.128:8081 参数;
            }
            # 在server 80下添加如下代码
            location /{
                proxy_pass http://test;     # test 是在上面命名的
            }
    -   配置 'upstream' 的时候,可以把你的代理服务器也加在里面用来做 'web' 服务器, 但是端口就不用在用80了。
    -   重启你的nginx,现在负载均衡就已经可以用了
  • 负载均衡 - 模式

    -   '默认轮询'
    # 默认轮询, 如果你是直接复制上面的upstream,并且不带任何参数,那么你使用的就是默认轮询方式,意思就是:
    # 请求会随机派发到你配置的服务器上,默认是按server顺序依次分配请求,分配完之后,重复这个动作。
    -   '权重分配'
    #   配置方式:  
        upstream item { # item名字可以自定义
            server 192.168.93.128:8080 weight=1; 
            server 192.168.93.128:8081 weight=2;
        }
    #   weight的值越高被派发请求的概率也就越高,可以根据服务器配置的不同来设置。
    -   '哈希分配'
        upstream item { # item名字可以自定义
            ip_hash;
            server 192.168.93.128:8080;
            server 192.168.93.128:8081;
        }
    #  原理:他的根据客户端IP来分配服务器,比如我第一次访问请求被派发给了192.168.93.128这台服务器,那么我之后
    #  的请求就都会发送这台服务器上,这样的话session共享的问题也就解决了。
    -   '最少连接分配'
        upstream item { # item名字可以自定义
            least_conn;
            server 192.168.93.128:8080;
            server 192.168.93.128:8081;
        }
    #   原理:根据上添加的服务器判断哪台服务器分的连接最少就把请求给谁。
  • 负载均衡 - 参数

    下面的参数可同时配置,使用空格分开即可
    '配置方式 server ip:端口 参数'
    
    - 'weight 权重'
     # weight = 数值 (值越高被选中的概率也就越高)
     
    - 'max_fails 失败多少次踢出队列'
     # max_fails = 数值
    
    - 'fail_timeout 踢出队列后重新探测时间'
     # fail_timeout = 60s (s = 秒)
     
    - 'max_conns 最大连接数'
    # max_conns = 800 为防止单机性能过载可以根据实际情况设置

配置完成之后,看效果也很简单,主要看server配置中的日志,监听每个服务器的日志变化,就可以清楚的知道访问代理服务器时,请求是被分配到哪个服务器了。

技苑
请先登录后发表评论
  • 最新评论
  • 总共0条评论
  • © 2016-2020 技苑|PHP是世界上最好的语言 版权所有 ICP证:鄂ICP备15021999号
  • 联系邮箱:master@pengxb.com